此代码为 Integer.parseInt(data[2]) 行抛出异常
This code throws an exception for the line Integer.parseInt(data[2])
在我的 playerList.txt
中,我有这样构造的行:
Nathaniel, Clyne, 12, first
为什么不能接受Integer.parseInt
?
我有一个 class MemberPlayer
定义 MemberPlayer
应该有名字、姓氏、年龄和团队(第一或第二)。
Exception in thread "main" java.lang.NumberFormatException: For input
string: " 12"
at java.base/java.lang.NumberFormatException.forInputString NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:638)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at FileHandler.getContent(FileHandler.java:53)
at Main.main(Main.java:55)
public static final String FINAL_PATH = "playerList.txt";
public static ArrayList<MemberPlayer> getContent(String FINAL_PATH)
{
ArrayList<MemberPlayer> list = new ArrayList<MemberPlayer>();
try
{
Scanner sc = new Scanner(new File(FINAL_PATH));
while(sc.hasNextLine())
{
String data[] = sc.nextLine().split(",");
list.add(new MemberPlayer(data[0], data[1],
Integer.parseInt(data[2]), data[3]));
}
}
catch(FileNotFoundException e)
{
}
return list;
}
" 12"
无法解析为有效的 int
,因为它有前导 space,但 "12"
可以:
Integer.parseInt(data[2].trim())
确保所有 data[0]
... data[3]
在访问它们之前都存在。文件可能已损坏或填写不准确。
尝试用“,”或“,\\s”拆分。
在我的 playerList.txt
中,我有这样构造的行:
Nathaniel, Clyne, 12, first
为什么不能接受Integer.parseInt
?
我有一个 class MemberPlayer
定义 MemberPlayer
应该有名字、姓氏、年龄和团队(第一或第二)。
Exception in thread "main" java.lang.NumberFormatException: For input string: " 12"
at java.base/java.lang.NumberFormatException.forInputString NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:638)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at FileHandler.getContent(FileHandler.java:53)
at Main.main(Main.java:55)
public static final String FINAL_PATH = "playerList.txt";
public static ArrayList<MemberPlayer> getContent(String FINAL_PATH)
{
ArrayList<MemberPlayer> list = new ArrayList<MemberPlayer>();
try
{
Scanner sc = new Scanner(new File(FINAL_PATH));
while(sc.hasNextLine())
{
String data[] = sc.nextLine().split(",");
list.add(new MemberPlayer(data[0], data[1],
Integer.parseInt(data[2]), data[3]));
}
}
catch(FileNotFoundException e)
{
}
return list;
}
" 12"
无法解析为有效的 int
,因为它有前导 space,但 "12"
可以:
Integer.parseInt(data[2].trim())
确保所有 data[0]
... data[3]
在访问它们之前都存在。文件可能已损坏或填写不准确。
尝试用“,”或“,\\s”拆分。