java字符串基础,救救孩子吧


public class Main {
    public static void main(String[] args){
    String secret="1807";
    String guess=new String("7810");
    int A=0,B=0;
    char[] se=secret.toCharArray();
    char[] gu=guess.toCharArray();
    for(int i=0;i<secret.length();i++){
        if((secret.substring(i, i+1))==(guess.substring(i, i+1))) {
            B++;
            
        }
        if(se[i]==gu[i]) {
            A++;
            
        }
    }
    System.out.println(A);
    System.out.println(B);

    
}
}


变量之所以奇怪是题目中给的,代码是自己敲的,本来想用字符串截取来判断,结果却一直是0,只好换成转换为字符数组去判断。所以
我想知道为什么输出是:
1
0
为什么不是:
1
1

substring(star,end)用于截取下标中间的数,用于String类型的数组,你这是String类型的变量

两个等号只能用于基本数据类型的判断或者常数,而String属于引用数据类型,用==相当于比较的是两个字符串的地址,如果比较的是内容,使用equals进行比较,为了防止空指针,通常用**.equals**(变量)进行比较。