parseToInt来自textfile中的字符串,导致程序崩溃

时间:2016-05-04 04:16:04

标签: java parsing

我正在尝试生成一个hashmap,并要求文本文件中的某些字符串是键的整数。但是,每当我尝试将字符串转换为整数时,程序就会崩溃。

以下是代码:

BufferedReader in = new BufferedReader(new FileReader("patient.txt"));//create thing to open the file
String line;
while((line = in.readLine())!= null)
{
    String[] text = line.split(",", -1);
    String keyString = text[0];
    String value = text[1] + text[2] + text[3] + text[4];
    int key = Integer.parseInt(keyString);
    System.out.println(key + " " + value);
}

导致程序崩溃的部分是parseInt行。我收到了错误

at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)

这是文本文件的示例。我正在尝试将Baker转换为整数等。

Baker, William,     Chavez,     04/01/05,   04/10/06
Sanchez, Jose,      Chavez,     06/15/05,

2 个答案:

答案 0 :(得分:0)

处理此例外或 检查字符串是否与数字格式真正匹配:

String input=...;
String pattern ="-?\\d+";
if(input.matches("-?\\d+")){ // any positive or negetive integer or not!
 ...
}

答案 1 :(得分:0)

您的数据不允许,如果仔细查看代码,可以看到String keyString = text [0];给你的" Baker"对于第一行,这不是整数。