我正在尝试编写一个程序来读取文本文件并将文本文件中的一行(例如 B 行)附加到上一行 A 行,如果 B 行包含字符串“&”。这是我的代码:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
public class Inputs {
public static void main(String[] args) {
File file = new File("C:\\Users\\frencke\\workspace\\Testing Stuff\\Append Tetsing\\file3.txt");
ArrayList<String> lines = new ArrayList<String>();
ArrayList<Integer> num = new ArrayList<Integer>();
ArrayList<Integer> num2 = new ArrayList<Integer>();
try {
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
lines.add(scanner.nextLine());
String delimiter = " &";
for(int i=0; i<lines.size(); i++) {
if(lines.get(i).contains(delimiter))
num.add(i);
}
for(int i=1; i<=lines.size()+1; i++)
if(num.get(i-1) != num.get(i)){
num2.add(num.get(i));
System.out.println(lines.get(num2.get(i)));
}
}
scanner.close();
} catch (FileNotFoundException e) {
System.out.println("Cannot find file.");
}
}
}
我收到错误
线程“主”java.lang.IndexOutOfBoundsException 中的异常:索引:1,大小:1 在 java.util.ArrayList.RangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source) at Inputs.main(Inputs.爪哇:21)
在第 21 行,
if(num.get(i-1) != num.get(i)){
我认为这是因为我从 i 中减去 1,但我不确定为什么这是一个问题,因为我将 i 初始化为 1 而不是 0 以避免这种情况。任何帮助,将不胜感激; 我也尝试过 StringBuffer .append() 方法,但没有成功,但如果你有一个可以使用该方法或其他方式的解决方案,那将是花花公子。