java中的equals没有返回正确的值

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

我正在用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(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()){
代替谢谢..我没有注意到这么小的错误