gpt4 book ai didi

java - 比较两个文件中的每一行

转载 作者:行者123 更新时间:2023-12-01 18:26:48 30 4
gpt4 key购买 nike

我有一个任务来比较两个文件中的行。值以字符串形式存储在文件中。我是 Java 新手,所以如果有一些愚蠢的错误,请原谅:)file1 包含

1044510=>40000
2478436011=>10000
2478442011=>3500
2498736011=>3000
2498737011=>550
2478443011=>330
2478444011=>1,550

文件二包含

1044510=>30,097
2478436011=>9,155
2478442011=>2,930
2498736011=>2,472
2498737011=>548
2478443011=>313
2478444011=>1,550

我想从第一个文件和第二个文件中获取第一行,并检查第一个文件中的 line1 值是否大于第二个文件。 (40000>30,097) 与否。不想在“=>”之前取值。我已经完成了示例代码,但运行时出现错误。

private static void readfiles() throws IOException {
BufferedReader bfFirst = new BufferedReader(new FileReader(first_list));
BufferedReader bfSecond = new BufferedReader(new FileReader(second_list));

int index = 0;
while (true) {

String partOne = bfFirst.readLine();
String partTwo = bfSecond.readLine();
String firstValue=null;
String secondValue=null;
int firstValueInt;
int secondValueInt;

if (partOne == null || partTwo == null)
{
break;
}
else
{
System.out.println(partOne + "-----\t-----" + partTwo);
firstValue=partOne.split("=>")[1];
secondValue=partTwo.split("=>")[1];
System.out.println("first valueee"+firstValue);
System.out.println("second value"+secondValue);
firstValueInt=Integer.parseInt(firstValue);
secondValueInt=Integer.parseInt(secondValue);

if(secondValueInt>firstValueInt)
{
System.out.println("greater");
}
else
{
System.out.println("lesser");
}
}

}
}

}

这是我遇到的异常

Exception in thread "main" java.lang.NumberFormatException: For input string: "30,097"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at com.bq.pricefinder.flipkart.findProductDifferenceFromFiles.readfiles(findProductDifferenceFromFiles.java:45)
at com.bq.pricefinder.flipkart.findProductDifferenceFromFiles.main(findProductDifferenceFromFiles.java:18)

最佳答案

这里的问题是您将十进制值解析为整数。

异常

java.lang.NumberFormatException: For input string: "30,097"

很清楚,它表示十进制值 30,097 的整数格式无效。

使用float代替int,然后进行比较。此外,有时取决于区域设置使用什么十进制符号,对于一个国家/地区可以是 ,,对于另一个国家/地区可以是 .。另请阅读THIS .

关于java - 比较两个文件中的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25847089/

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