-4
public static void main(String[] args) {
    int i = 0;
    while(i==0){
        System.out.println("Possibilities: R, T, O and X.\nYour choice: ");
        Scanner scan = new Scanner(System.in);
        String bla = scan.nextLine();
        System.out.println(bla);
        if(bla=="R"){
            System.out.println("S or B?\n Your choice: ");
            String derp = scan.nextLine();
            if(derp=="S"){
                String rekeningNummer = spaarRekening.getRekeningNummer();
                }
        }
        if(bla=="T"){
            System.out.println("dit is T");
        }
        if(bla=="O"){

        }
        if(bla=="X"){

        }
        else{
            System.out.println("Impossible. Try again.");
        }
    i+=1;
    }

}

私はこのプログラムを実行しようとしましたが、ifステートメントに出くわすとそれを無視します。理由がわからず、アイデアが足りなくなっています。

4

5 に答える 5

9

Stringインスタンスを比較するequals()には、Object

見る

于 2012-06-12T11:30:24.500 に答える
5

文字列文字ではなく文字列参照を比較するため、.equals()使用 しないでください。==

 if (bla.equals("T")) {
     System.out.println("dit is T");
 }
 if (bla.equals("O")) {

 }
于 2012-06-12T11:30:56.670 に答える
4

==はString比較演算子ではありません。

.equals()を比較するために使用する必要がありますString

于 2012-06-12T11:30:28.917 に答える
1

2つの文字列があると仮定しましょう。文字列str1="blah"; 文字列str2=new String( "blah");

Javaには2つのレベルの平等チャッキングがあります。

  1. 2つの参照変数str1とstr2が同じStringオブジェクトを指しているかどうかをテストすることをお勧めします。通常、このチェックはstr1==str2で行います。

  2. str1とstr2によって参照される文字列の意味が等しいかどうかをテストすることをお勧めします。通常、これを行うには、equalsメソッド(str1.equals(str2)またはstr2.equals(str1))を呼び出します。

より明確にするために、ステートメント"bla == "R" "は、" "R" "とblaによって返される参照が同じオブジェクトを指しているかどうかをチェックしますが、これは実際には必要なことではありません。blaによって参照される文字列が意味によって「 R 」と等しいかどうかを確認したいとします。したがって、Javaで意味を持ってオブジェクトを比較する場合は、そのオブジェクトに対してequals()メソッドを呼び出す必要があります。

于 2012-06-12T11:54:54.690 に答える
0

文字列オブジェクトであるため、== use .equals()は使用しないでください

于 2012-06-12T11:48:14.070 に答える