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**(变量)进行比较。