Java .charAt(i)比较问题

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变量被视为数字和字符.