Разбить текстовый файл разбора в Java - PullRequest
0 голосов
/ 09 декабря 2018

Таким образом, в основном я мог читать текстовый файл, используя BUFFERED READER.После этого я должен разделить и разобрать его, в этот момент я столкнулся с проблемой.

Вывод: 5 2 9 1 7 3 9 2 10 11 6 3
Исключение в потоке "main "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 BUILD FAILED (общее время: 0 секунд)

МОЙ КОД IS

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 голосов
/ 09 декабря 2018

Проблема в 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, находим общее количество элементов в файле.
...