在Java中拆分解析文本文件

时间:2018-12-09 06:24:26

标签: java file parsing split

所以基本上我可以使用BUFFERED READER读取文本文件。 之后,我应该拆分并解析它,此时,我面临一个问题。

  

输出为:   5 2 9   1 7 3   9 2 10   11 6 3
  线程“主”中的异常java.lang.NumberFormatException:对于输入字符串:“ F:\ Gephi \ number.txt”       在java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)       在java.lang.Integer.parseInt(Integer.java:580)       在java.lang.Integer.parseInt(Integer.java:615)       在javaapplication17.JavaApplication17.main(JavaApplication17.java:42)   C:\ Users \ Asus \ AppData \ Local \ NetBeans \ Cache \ 8.2 \ executor-snippets \ run.xml:53:返回的Java:1   失败(总时间:0秒)

我的密码是

package javaapplication17;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;




public class JavaApplication17 {

    public static void main(String[] args) {

        String count = "F:\\Gephi\\number.txt";

        try (BufferedReader br = new BufferedReader(new FileReader(count))) 
        {
            String line;
            while ((line = br.readLine()) != null)
            {
                System.out.println(line);
            }
        } 

        catch (IOException e) 
        {
            e.printStackTrace();

        }


        // What is the Problem in this part? //

        String[] abc = count.split("/t");
        int[] intArray = new int[abc.length];

        for (int i=0; i<abc.length; i++)

        {

        String numberAsString = abc[i];
        intArray[i] = Integer.parseInt(numberAsString);


        }

        System.out.println("Number of integers: " + intArray.length);

        System.out.println("The integers are:");
        for (int number : intArray)

        {

        System.out.println(number);

        }






    }
}

我的文本文件如下

5   6   7
5   2   9
1   7   3
9   2   10
11  6   3

1 个答案:

答案 0 :(得分:0)

问题是count是一个包含值"F:\\Gephi\\number.txt"的字符串。这不会为您提供文件中的行数/列数。

String[] abc = count.split("/t");  // <------ This won't work

所以当您这样做

int[] intArray = new int[abc.length];

您正在创建一个大小为abc的数组,该数组被不正确的\t分隔。


要解决您的问题,可以将try-catch块更改为以下内容:

int countOfNum = 0;
try (BufferedReader br = new BufferedReader(new FileReader(count))) {
    String line;
    while ((line = br.readLine()) != null) {
        String[] currLine = line.split("\t");
        System.out.println(Arrays.toString(currLine));
        countOfNum = countOfNum + currLine.length;
    }
} catch (IOException e) {
    e.printStackTrace();
}

System.out.println("Total count of numbers : " +countOfNum);
  • 在上述解决方案中,我们将每一行拆分为变量currLine
  • 接下来使用Arrays.toString()打印出值
  • 现在使用变量countOfNum,我们可以找到 文件中的元素。