Car*_*los 3 java string comparison char
为什么在将char与另一个char进行比较时,还必须从字符串中获取?例如;
这不起作用
while(i < t.length() && zeroCount < 5) {
if(t.charAt(i) == 0){
zeroCount++;
}
i++;
}
Run Code Online (Sandbox Code Playgroud)
这也不是
char zero = 0;
while(i < t.length() && zeroCount < 5) {
if(t.charAt(i) == zero){
zeroCount++;
}
i++;
}
Run Code Online (Sandbox Code Playgroud)
我设法让它运作的唯一方法就是这样......
String zeros = "0000000000";
while(i < t.length() && zeroCount < 5) {
if(t.charAt(i) == zeros.charAt(i)){
zeroCount++;
}
i++;
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释我是否做错了什么,或者像前2个例子那样做是不可接受的.如果是这样,为什么?
ska*_*man 11
你很困惑
char zero = 0;
Run Code Online (Sandbox Code Playgroud)
同
char zero = '0';
Run Code Online (Sandbox Code Playgroud)
前者是空字符(ASCII值为零),而后者是表示数字零的字符.
这种混乱是C的一个相当不幸的遗留问题,char变量被视为数字和字符.