这个是大家都知道的,Stirng类型存放相同内容时会共用一个地址,则引用也会相同则输出为true。
但是今天就遇到问题了,调试了半天才发现,两个String类型相同内容但是始终判断为false。后来发现因为其中一个String是Static类型导致的,
解决办法;
写一个方法判断两个内容上是否一致,注意要先判断是否为null再调用length方法。
public Boolean equals(String s1, String s2){
if(s1 == null ||s2 == null){
Log.i(Const.TAG, "s1==null");
return false;
}
if(s1.length()!= s2.length()){
Log.i(Const.TAG, "长度不相等");
return false;
}
char[] s11 = s1.toCharArray();
char[] s22 = s2.toCharArray();
for(int i = 0; i < s1.length(); i++){
if(s11[i] != s22[i]){
Log.i(Const.TAG, "s1内容不相同");
return false;
}
}
return true;
}