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!");
为什么 Fk是啊!如果我输入一个A-L字母就不会发生?
答案 0 :(得分:22)
字符串是对象。 ==
按引用比较对象,而不是内部值。
有两种解决方案:
使用String#equals()
方法来比较两个String
对象的值。
if (letters[x].equals(cord[1]))
使用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!");
答案 1 :(得分: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>