我必须编写一个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
答案 0 :(得分:0)
正如Karthikeyan Vaithilingam指出的那样,你使用了if (str1 != str2)
。这是不正确的。使用!=
条件运算符比较两个String
对象而不是它们的实际值,在这种情况下,您的代码将继续运行。
以下是关于String
比较的精彩文章:http://www.thejavageek.com/2013/07/27/string-comparison-with-equals-and-assignment-operator/