错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: "7 1"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at javaapplication3.JavaApplication3.main(JavaApplication3.java:19)
我正在尝试按如下方式读取文件内容,就像逗号出现一样,这意味着图中有一个直接箭头!从3到7有一个直接箭头,从1到4,依此类推。
file.txt内容:
3,7 1,4 7,8 0,5 5,2 3,0 2,9 0,6 4,9 2,6 6,4 1,5 8,2 9,0 8,3 4,5 2,3 1,6 3,5 7,6
java代码:
import java.io.File; import java.util.Scanner;
public class JavaApplication3 {
public static void main(String[] args) throws Exception
{
@SuppressWarnings("resource")
Scanner inFile = new Scanner(new File("file.txt"));
// Read the number of vertices
String line = inFile.nextLine();
String[] data=line.split("\\,");
int part1=Integer.parseInt(data[0]);
int part2=Integer.parseInt(data[1]);
\*I expect the 2 lines above to work like that :part1=3, part2=7 .but what I noticed there is aproblem about the space character .*/
while(inFile.hasNext())
{
line=inFile.nextLine();
int index =0;
int count=0;
char edges = ',';
while(index<line.length()) {
if(line.charAt(index)==edges){
count++;
}
index++;
}
}
}
如果你能感谢,请帮助我。
答案 0 :(得分:0)
您只是将line
拆分为逗号,并且您希望将其拆分到有空格的位置。否则data
将如下所示:
{"3", "7 1", "4 7", "8 0", ..., "5 7", "6"}
并且您无法将"7 1"
(或任何包含空格的ohers)解析为int
。
要解决此问题,请将分隔符从"\\,"
更改为",|\\s+"
,如下所示:
String[] data=line.split(",|\\s+");