这是我制作的代码的一部分。 读者似乎读了第一个字符串" 2"但由于某种原因,它没有将其转换为整数。
public void fileinput2()
{
try
{
BufferedReader file=new BufferedReader(new FileReader("ddv.txt"));
try
{
while((line=file.readLine())!=null){
String[] s=line.split("\\t+");
int firstindex=Integer.parseInt(s[0].trim());
int secondindex=Integer.parseInt(s[1].trim());
adj[firstindex-1][secondindex-1]=1;
adj[secondindex-1][firstindex-1]=1;
/*for(int i=0;i<s.length;i++)
{System.out.println(s[i]);
int x=Integer.valueOf(s[i].trim());
}*/
}
} catch (NumberFormatException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DDV是一个文本文件,如下所示:
2 8
6 9
4 10
等等。
但是我收到此错误
java.lang.NumberFormatException: For input string: "2"
at
java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615).
请帮帮我谢谢。)
答案 0 :(得分:0)
它不是真实的&#34; 2&#34;,在&#34; 2&#34;之前你有不可打印的符号\ uFEFF。它在您的文件中是不可见的utf-8前缀
你可以分析文件的第一个字符,或者只是添加懒惰的s.replace(&#34; \ uFEFF&#34;,&#34;&#34;)或用正则表达式解析行