Java . Charat (I) comparison problem

Why do you have to get a char from a string when comparing a char with another char? For example;

It doesn't work

while(i < t.length() && zeroCount < 5) {
        if(t.charAt(i) == 0){
            zeroCount++;
        }
        i++;
    }

It's not

char zero = 0;

      while(i < t.length() && zeroCount < 5) {
            if(t.charAt(i) == zero){
                zeroCount++;
            }
            i++;
        }

The only way I try to make it work is this

String zeros = "0000000000";

      while(i < t.length() && zeroCount < 5) {
            if(t.charAt(i) == zeros.charAt(i)){
                zeroCount++;
            }
            i++;
        }

Anyone can explain whether I did something wrong, or it is unacceptable to do as in the first two examples If so, why?

Solution

You're confused

char zero = 0;

with

char zero = '0';

The former is a null character (ASCII value is zero), and the latter is a character representing the number zero

This confusion is a rather unfortunate legacy of C. char variables are treated as numbers and characters

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>