Java 从文本文件读取时如何比较不同行中的字符串

Java 从文本文件读取时如何比较不同行中的字符串,java,Java,如果字符串位于不同的行上,是否有方法与文本文件中的字符串进行比较?这就是我比较第一行和第二行的方式。但是如果我想比较第一行和第八行,第二行和第九行等等,我该怎么做呢。很抱歉,如果以前有人问过这个问题,但我在搜索时找不到任何内容 if(kb.hasNext()){ String in = kb.nextLine (); String two = kb.nextLine(); } 输入示例: 1 2 3 4 5 6 7 2 1 3 4 5 6 7 3 1 2 4 5 6 7 4 1

如果字符串位于不同的行上,是否有方法与文本文件中的字符串进行比较?这就是我比较第一行和第二行的方式。但是如果我想比较第一行和第八行,第二行和第九行等等,我该怎么做呢。很抱歉,如果以前有人问过这个问题,但我在搜索时找不到任何内容

if(kb.hasNext()){
    String in = kb.nextLine ();
    String two = kb.nextLine();
}
输入示例:

1 2 3 4 5 6 7
2 1 3 4 5 6 7
3 1 2 4 5 6 7
4 1 2 3 5 6 7
5 1 2 3 4 6 7
6 1 2 3 4 5 7
7 1 2 3 4 5 6
1 2 3 4 5 6 7
2 1 3 4 5 6 7
3 1 2 4 5 6 7
4 1 2 3 5 6 7
5 1 2 3 4 6 7
6 1 2 3 4 5 7
7 1 2 3 4 5 6             

我正在用Java编写代码。谢谢你的建议

我认为最好像这样阅读整个文件

List <String> listOfFileEntries=new ArrayList<>();
while(kb.hasNext()) {
           listOfFileEntries.add(kb.nextLine ());
    }

然后可以比较ArrayList中的行。要与数字i保持一致,只需编写listOfFileEntries.geti

我认为最好像这样阅读整个文件

List <String> listOfFileEntries=new ArrayList<>();
while(kb.hasNext()) {
           listOfFileEntries.add(kb.nextLine ());
    }

然后可以比较ArrayList中的行。要获得数字i的行,只需编写leentries.geti列表。如果输入数据不大,可以将它们加载到内存中:

List<String> lines = new ArrayList<>();

final FileReader fileReader = new FileReader("somefile.txt");
final BufferedReader bufferedReader = new BufferedReader(fileReader);

String line;
while((line = bufferedReader.readLine()) != null) {
    lines.add(line);            
}

然后使用split、regex等进行处理。

如果输入数据不大,可以将其加载到内存中:

List<String> lines = new ArrayList<>();

final FileReader fileReader = new FileReader("somefile.txt");
final BufferedReader bufferedReader = new BufferedReader(fileReader);

String line;
while((line = bufferedReader.readLine()) != null) {
    lines.add(line);            
}

然后用split、regex等进行处理。

首先,你必须全部读入。首先,你必须全部读入。好的,这很有意义。我试试看。ThanksI正在阅读Java API,而.get只返回此列表中指定位置的元素。如果我想返回第8行的所有元素,我认为这是行不通的。我把整个文件都读了进去,但我只是搞不清楚如何才能说比较第1行和第8行。如果您还有其他想法,我们将不胜感激。您正在逐行阅读您的文件。这就是为什么ArrayList将包含文件中的行,而不是行中的单个元素。listOfFileEntries.get0将返回您的行:1 2 3 4 5 6 7 listOfFileEntries.get1将返回您的行:2 1 3 4 5 6 7感谢Yauheni的澄清。好的,这是有意义的。我试试看。ThanksI正在阅读Java API,而.get只返回此列表中指定位置的元素。如果我想返回第8行的所有元素,我认为这是行不通的。我把整个文件都读了进去,但我只是搞不清楚如何才能说比较第1行和第8行。如果您还有其他想法,我们将不胜感激。您正在逐行阅读您的文件。这就是为什么ArrayList将包含文件中的行,而不是行中的单个元素。listOfFileEntries.get0将返回您的行:1 2 3 4 5 6 7 listOfFileEntries.get1将返回您的行:2 1 3 4 5 6 7感谢Yauheni的澄清。