为什么 indexOf 没有给出来自 unicode 的正确结果?
Why does not indexOf give the right result from unicode?
我不明白为什么我使用 indexOf 和字符的 Unicode 表示时得不到正确的结果?
public class Test {
public static void main(String[] args) {
String strg = "Dog?Cat";
System.out.println("String: " + strg);
System.out.println("Char: " + strg.indexOf('?'));
System.out.println("String: " + strg.indexOf(new String("?")));
System.out.println("Sign: " + String.valueOf('\u0134'));
System.out.println("Unicode: " + strg.indexOf(String.valueOf('\u0134')));
}
}
结果:
String: Dog?Cat
Char: 3
String: 3
Sign: ?
Unicode: -1 --> Why is it -1 ?! Why not 3 ?
你能帮帮我吗?谢谢!
String.valueOf('\u0134')
不是 '?'
字符。 System.out.println
为许多不可打印的字符(例如 '\u0134'
)打印 '?'
,但您的 "Dog?Cat"
字符串不包含 '\u0134'
字符。
这会给你预期的 3 :
String strg = "Dog?Cat";
System.out.println("Unicode: " + strg.indexOf(String.valueOf('\u003f')));
我不明白为什么我使用 indexOf 和字符的 Unicode 表示时得不到正确的结果?
public class Test {
public static void main(String[] args) {
String strg = "Dog?Cat";
System.out.println("String: " + strg);
System.out.println("Char: " + strg.indexOf('?'));
System.out.println("String: " + strg.indexOf(new String("?")));
System.out.println("Sign: " + String.valueOf('\u0134'));
System.out.println("Unicode: " + strg.indexOf(String.valueOf('\u0134')));
}
}
结果:
String: Dog?Cat
Char: 3
String: 3
Sign: ?
Unicode: -1 --> Why is it -1 ?! Why not 3 ?
你能帮帮我吗?谢谢!
String.valueOf('\u0134')
不是 '?'
字符。 System.out.println
为许多不可打印的字符(例如 '\u0134'
)打印 '?'
,但您的 "Dog?Cat"
字符串不包含 '\u0134'
字符。
这会给你预期的 3 :
String strg = "Dog?Cat";
System.out.println("Unicode: " + strg.indexOf(String.valueOf('\u003f')));