从文件中读取节点以制作图形 - 使用java

时间:2014-10-26 20:14:29

标签: java file graph

错误:

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++;
        }

    }

}

如果你能感谢,请帮助我。

1 个答案:

答案 0 :(得分:0)

您只是将line拆分为逗号,并且您希望将其拆分到有空格的位置。否则data将如下所示:

{"3", "7 1", "4 7", "8 0", ..., "5 7", "6"}

并且您无法将"7 1"(或任何包含空格的ohers)解析为int

要解决此问题,请将分隔符从"\\,"更改为",|\\s+",如下所示:

String[] data=line.split(",|\\s+");