我有一个file.txt,它包含如下行:
461 \ t480 \ t0它们由标签分隔。
我想用java
读取这个文件String[] splits = line.split("\t");
int userID = Integer.parseInt( splits[0] );
它给了我错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: "461"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
如何解决此错误?
答案 0 :(得分:0)
试试这个。
String[] splits = line.split("\t");
int userID = Integer.parseInt( splits[0].trim() );
我认为既然你正在分裂'\ t',那么空格也带有数字,所以“461”最后可能有空格。但是Splits[0]
不得为null
否则将出现空指针异常。
答案 1 :(得分:0)
如果您的文件包含Windows样式的换行符,您是否可以将其转换为使用unix样式的换行符(大多数文本编辑器可以执行此操作),然后尝试再次读取它。另外,请验证第一行是否发生异常,或者是否正确解析了一行并在第二行抛出异常。
如果所有其他方法都失败了,您应该尝试调试代码。如果您使用eclipse进行开发非常简单,只需在调用split()
方法后设置断点,并检查split[0]
值。
答案 2 :(得分:-1)
尝试像这样格式化您的文件
line = line.replaceAll("\\s+","");
String [] splits = line.split("-");
int userID= Integer.parseInt(splits[0]);