java中的equals没有返回正确的值
我正在用java编写一个比较两个文件的简单程序:java中的equals没有返回正确的值,java,string,Java,String,我正在用java编写一个比较两个文件的简单程序: import java.util.Scanner; import java.io.*; public class Hello{ public static void main(String[] args) throws FileNotFoundException{ Scanner inFile = new Scanner(new File("d.txt")); Scanner inFile2 = new Scanner(n
import java.util.Scanner;
import java.io.*;
public class Hello{
public static void main(String[] args) throws FileNotFoundException{
Scanner inFile = new Scanner(new File("d.txt"));
Scanner inFile2 = new Scanner(new File("d2.txt"));
int i = 0;
while(inFile.hasNext() || inFile2.hasNext()){
System.out.println("hello");
String a = (String)inFile.next();
String b = (String)inFile2.next();
if(a.equals(b)){i=+1;}
}
System.out.println(i);
}
}
两个文件d和d2包含相同的内容“hello world”。然而,变量i总是返回1!我试图通过打印两个文件的值进行调试,结果它们打印出了相同的内容。知道为什么它不能正确比较吗?变量
i
总是返回1,因为您将+1赋值给它:
i=+1;
也许您想增加它:
i+=1;
i=+1是i=(+1),即将1的一元数+赋值给i
i+=1是i=i+1的缩写
因此,您可能需要使用i+=1而不是使用i=+1如果将变量i设置为1,您希望它返回什么?问题1:您从未关闭扫描仪<代码>infle.close();inFile2.close()代码>你可能想做i++;其他问题。如果infle和infle2有不同的长度,那么这些.next()函数将抛出NoTouchElementException。使用
while(infle.hasNext()&&inflee2.hasNext()){
代替谢谢..我没有注意到这么小的错误