字符串不等于字符串?

goo*_*ing 10 java string

String[] letters  = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "L"};

Scanner inp = new Scanner(System.in);
String input = (inp.nextLine());
String[] cord = input.split("");

for(int x = 0; x < 10; x++)
    if(letters[x] == cord[1])
        System.out.println("Fk yeah!");
Run Code Online (Sandbox Code Playgroud)

为什么Fk耶!如果我输入一个AL字母,就不会发生?

Bal*_*usC 22

字符串是对象.所述==通过引用,而不是由它们的内部值进行比较的对象.

有两种解决方案:

  1. 使用String#equals()方法来比较两个String对象的值.

    if (letters[x].equals(cord[1]))
    
    Run Code Online (Sandbox Code Playgroud)
  2. char而不是String.这是一个原始的,所以==会工作.

    char[] letters  = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'L'};
    
    Scanner inp = new Scanner(System.in);
    String input = (inp.nextLine());
    char[] cord = input.toCharArray();
    
    for (int x = 0; x < 10; x++)
        if (letters[x] == cord[1])
            System.out.println("Fk yeah!");
    
    Run Code Online (Sandbox Code Playgroud)

  • 圣牛你有很多徽章 (5认同)
  • @Code:与Jon Skeet相比,这没什么. (2认同)

小智 11

要比较字符串的相等性,请不要使用==.==运算符检查两个对象是否完全相同.两个字符串可以是不同的对象,但具有相同的值(在它们中具有完全相同的字符).使用.equals()方法比较字符串是否相等.同样,使用.compareTo()方法测试不相等的比较.例如,

String s = "something", t = "maybe something else";
if (s == t)      // Legal, but usually WRONG.
if (s.equals(t)) // RIGHT
if (s > t)    // ILLEGAL
if (s.compareTo(t) > 0) // CORRECT>
Run Code Online (Sandbox Code Playgroud)