请问在双重循环中:
char ch=text[i];
if(ch==text[j]){};

if(text[i]==text[j]){}这两种写法有什么区别?为什么会得到不同的结果?

解决方案 »

  1.   

    你要明白"=="和equal的区别,一个是比较引用,或者说是指象的地址,一个是比较值!
      

  2.   

    那我就糊涂了,ch是值,值和引用的结果怎么会为真呢?
    我再做了一个测试:
    char ch=text[2];
    if(ch==text[j]){};

    if(text[2]==text[j]){}的结果是一样的。我觉得很糊涂~
      

  3.   

    可能是我陈述有问题,我贴出源代码希望大家能够帮我看下:for(int i=0;i<len;i++){
    ch=text[i];
    if(text[i]!='\n'){
    for(int j=0;j<len;j++){
    if(ch==text[j]){ //把ch换成text[i]就得不到正确的结果,我不知道什么原因,大家能帮我看下吗?
    System.out.println(i+";"+j);
    text[j]='\n';
    count[i]++;
    }
    }
    }else count[i]=-1;
    }