我需要存储具有以下格式的输入文件中的数据:
k=5
1: 62 35
2: 10 49
1 Banana
2 Apple
我需要将k的值存储为int,然后我需要将接下来两行的int值存储为[2] [2] -array,最后我需要字符串“Banana”和“Apple”存储在列表中。我尝试使用useDelimiter但它忽略了我的分隔符并将整行读作一个行实例。
public static void main(String[] args) {
File file = new File("input.text");
try {
Scanner scanner = new Scanner(file);
scanner.useDelimiter("n=");
scanner.useDelimiter(".:");
int k = scanner.nextLine();
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; j++)
array[i][j] = scanner.nextInt();
}
} scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
答案 0 :(得分:1)
如果文本总是具有相同的结构,那么你可以做
int k = Integer.parseInt(scanner.nextLine().substring("=")[1]);
String currentLine;
for (int i = 0; i < 2; i++)
currentLine = scanner.nextLine().substring(currentLine.indexOf(" ") + 1)
for (int j = 0; j < 2; j++)
array[i][j] = currentLine.split(" ")[j];
}
}
然后对于Banana和Apple解析,应用相同的逻辑。子串直到第一个空格的索引+ 1个字符,因为我们不想保留它。然后将该字符串添加到列表中。