首页 文章

在java中拆分解析文本文件

提问于
浏览
2

基本上我可以使用BUFFERED READER读取文本文件 . 在那之后,我应该SPLIT和PARSE它,此时,我正面临一个问题 .

输出为:5 2 9 1 7 3 9 2 10 11 6 3线程“main”中的异常java.lang.NumberFormatException:对于输入字符串:java.lang.NumberFormatException.forInputString中的“F:\ Gephi \ number.txt” (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 BUILD FAILED(总时间: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

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

    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 ,我们找到文件中的元素总数 .

相关问题