-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()来比较Strings。

于 2012-06-12T11:30:28.917 回答
1

假设我们有两个字符串。字符串str1=“废话”;字符串 str2= 新字符串(“废话”);

Java 中有两个级别的相等性检查。

  1. 您可能想要测试两个引用变量 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

不要使用 == 使用 .equals() 因为它是一个字符串对象

于 2012-06-12T11:48:14.070 回答