ArrayList al=new ArrayList();
   File f=new File("E:/新建文件夹/111.txt");
   FileReader fr=new FileReader(f);
   BufferedReader br=new BufferedReader(fr);
   String s=br.readLine();
   while(s!=null){
   al.add(s);
   s=br.readLine();
   }    System.out.println(al.get(1)=="66666");
如上题,字符串66666是al.get(1)的元素,但为什么最后输出的结果是“false”。希望高手解答一下,谢谢!

解决方案 »

  1.   

    when you compare two String, pls use equals() to compare their content instead of using == to compare their address
    or it will always return false 
      

  2.   

    楼主要学会贴代码public class Demo {
        public static void main(String[] args) {
            if (args.length == 0) {
                System.out.println("no args.");
            }
        }
    }像楼主的代码层级多,又没有排版,没法看。
      

  3.   

    ArrayList al=new ArrayList();   File f=new File("E:/新建文件夹/111.txt");
       FileReader fr=new FileReader(f);
       BufferedReader br=new BufferedReader(fr);
       String s=br.readLine();
       while(s!=null){
        s=br.readLine();
       al.add(s);
       
       }
      

  4.   

    ==比较的是数据的内存地址是否相等,不是比较内容,字符串的内容比较要用equals方法,你们老师没讲吗?让他卷铺盖回家吧!
      

  5.   

    "6666".equals(al.get(1))
      

  6.   

    ==号,比较的是两个对象的地址值,那么肯定不相等。String类型重写了equals方法,字符串本身就是对象。所以需要equals方法。