import java.io.*;
public class test 
{
  public static void main(String args[]) throws IOException
  {
    char data[]=new char[1024]; // 建立可容纳1024个字符的数组 
    FileReader fr=new FileReader("d://abcd.txt"); // 建立对象fr
    int num=fr.read(data); // 将数据读入字符列表data内
    String str=new String(data,0,num); // 将字符列表转换成字符串
    System.out.println(num); 
    System.out.println(str);
    String[] part=str.split("");
    int sum1;
    sum1=0;
    for(int i=1;i<=part.length-1;i++)
    {       
      if(part[i]=="多")
      {
        sum1=sum1+1;
      }     
    }
    System.out.println(sum1);
  }
}
abcd.txt里面就五个字:最多选五门输出结果:
 5
最多选三门
0正常结果sum1应该是1才对,不知道为什么?
将中间判断改为part[i].equals("多")就可以得出正常结果,难道不能用==做字符串之间的比较?

解决方案 »

  1.   

    java中,==是比较是否具有相同的地址,equals()才是比较是否具有相同的内容。
      

  2.   

    不同的语言不一样啦,像js里面字符串直接==就可以了,但是java里面不一样,数型可以用==比较,但是字符串要用equals方法,细节问题平时多注意下就好
      

  3.   

    ==比较相同的地址,equals()是比较相同的内容
      

  4.   

    不是代码的问题,在java中,==比较的是两个对象的引用(就是内存地址),基本对象可直接用==比较。
    equals()适用于所有对象,不过有时也出错,最好的方法是重写equals()方法。
      

  5.   

    ==是比较对象的地址equals是比较对象的内容
      

  6.   

    应该用equals方法,用==号比较的是两个字符串对象的地址。
      

  7.   

    说的都不错,这个是java基本功。
      

  8.   

    不能用==判断字符串相等的,基本都属于“老语言”了。比如C,Java,