一个很奇怪的问题:在读取文件时,如果对文件开头的string进行int转换,出错
如:
while ((lineStr = br.readLine()) != null) {
tmpStr = lineStr.split("\t");
try {
String s1 = tmpStr[0].trim();
System.out.println("s1:" + s1);
int s2 = Integer.parseInt(s1);
System.out.println("s2:" + s2);
} catch (NumberFormatException e) {
e.printStackTrace();
}
}
s1能打印出来正常的数字,而s2报错!
原因:文件头信息问题
解决方法:加个正则表达式过滤一下
代码中修改成:String s1 = tmpStr[0].replaceAll("[^0-9.]", "").trim();即可。
参考:http://stackoverflow.com/questions/4599061/unable-to-parse-as-integer