与java中的文本文件相比

时间:2015-03-25 19:21:31

标签: java

我必须编写一个java程序来比较两个表并打印那些不相同的表。 这是我的尝试,但由于某种原因,程序完全相反。

 public class reading_file {
    public static void main(String [] args) throws IOException {
        File is1 =new File("T1.txt");
        File is2 =new File("T2.txt");
        Scanner sc1 = new Scanner(is1);
        Scanner sc2 = new Scanner(is2);
        while (sc1.hasNext() && sc2.hasNext()) {
            String str1 = sc1.next();
            String str2 = sc2.next();
            if (str1 != str2)
                System.out.println(str1 + "  " + str2);
        }
        while (sc1.hasNext())
            System.out.println(sc1.next() + " != EOF");
        while (sc2.hasNext())
            System.out.println("EOF != " + sc2.next());
        sc1.close();
        sc2.close();
    }
}

这是表格:

ID Name   
1   A
26  Z
3   C
ID Name
1   A
2   B
3   C

这是我的输出

1  1
A  A
26  2
Z  B
3  3
C  C

1 个答案:

答案 0 :(得分:0)

正如Karthikeyan Vaithilingam指出的那样,你使用了if (str1 != str2)。这是不正确的。使用!=条件运算符比较两个String对象而不是它们的实际值,在这种情况下,您的代码将继续运行。

以下是关于String比较的精彩文章:http://www.thejavageek.com/2013/07/27/string-comparison-with-equals-and-assignment-operator/