gpt4 book ai didi

java - 用 Java 逐行比较文本文件

转载 作者:行者123 更新时间:2023-12-01 18:05:04 25 4
gpt4 key购买 nike

我正在尝试比较 Java 中文本文件中的行。例如,有一个包含以下几行的文本文件:

temp1 am 32.5 pm 33.5
temp2 am 33.5 pm 33.5
temp3 am 32.5 pm 33.5
temp4 am 31.5 pm 35

a b c d e

a 是线路名称,b 是常量(am),< em>c 是变量,d 是常量(pm),e 是另一个变量。

它只会比较变量 -> temp1(c) 与 temp2(c)、temp1(e) 与 temp2(e) 等。

当有两行或更多行具有相同的c(s)和e(s)时,会抛出FormatException。

从上面的示例文本文件中,由于 temp1 的 c 与 temp3 的 c 相同,并且 temps1 的 e 与 temp3 的 e 相同,因此它将抛出 FormatException。

这是我到目前为止所拥有的:

public static Temp read(String file) throws FormatException {
String line = "";
FileReader fr = new FileReader(fileName);
Scanner scanner = new Scanner(fr);

while(scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
scanner.close();

if () {
throw new FormatException("Error.");

我怎样才能做到这一点?

最佳答案

您需要拆分行以提取变量,并使用 Set 来检查重复项,如下所示:

Set<String> ceValues = new HashSet<>();
while(scanner.hasNextLine()) {
String line = scanner.nextLine();
String[] values = line.split(" ");
if (!ceValues.add(String.format("%s %s", values[2], values[4]))) {
// The value has already been added so we throw an exception
throw new FormatException("Error.");
}
}

关于java - 用 Java 逐行比较文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37118272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com