gpt4 book ai didi

java - 使用 BufferedReader 将字符串转换为 int

转载 作者:行者123 更新时间:2023-12-02 02:57:32 25 4
gpt4 key购买 nike

我有这段代码,但当我尝试运行它时,出现此错误线程“main”中出现异常 java.lang.NumberFormatException:对于输入字符串:“1”每行都包含一个数字、姓名、电子邮件和日期,因此每行的第一个字符是数字。 tomb[0] 只是一个数字

List<Szemely> lista = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader(this.szemelyekcsv))) {
String line;

while ((line = br.readLine()) != null) {
String[] tomb;
tomb = line.split(";");

int sor = Integer.parseInt(tomb [0]);
DateTimeFormatter sima = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate szul = LocalDate.parse(tomb[3], sima);


lista.add(new Szemely(sor, tomb[1], tomb[2], szul));

}
} catch (FileNotFoundException ex) {
System.out.println("Nem tudom megnyitni a 'be.txt' fájlt.");
} catch (IOException ex) {
System.out.println("Hiba a 'be.txt' fájl olvasása közben.");
}

当程序到达这一行时

int sor = Integer.parseInt(tomb [0]);

自动跳转回

try (BufferedReader br = new BufferedReader(new FileReader(this.szemelyekcsv))) 

和错误...感谢所有帮助。

最佳答案

pooyan , AxelHVGR指出问题确实是一个或多个不可见字符(例如控制字符)。

解决此问题的一种方法是使用正则表达式删除所有非数字的内容:

int sor = Integer.parseInt(tomb[0].replaceAll("[^0-9]+", ""));

[^...] = 不是这些字符

[0-9] = 数字

+ = 一次或多次

关于java - 使用 BufferedReader 将字符串转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42858715/

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