Как прочитать текстовый файл в массив, подсчитать количество вхождений, а затем отобразить количество - PullRequest
0 голосов
/ 05 ноября 2018

Текстовый файл содержит случайные символы, и я хочу считать цифры от 0 до 9.

Я изо всех сил пытаюсь понять, как прочитать текстовый файл в массив, как правильно подсчитать вхождения конкретных цифр в массив, а затем отобразить количество вхождений, используя методы.

Вот мой код:

  // Get the filename.
  System.out.print("Enter the filename: ");
  String filename = keyboard.nextLine();

  // Open the file.
  File file = new File(filename);
  Scanner inputFile = new Scanner(file);

  char [] charMap = new char [1380];

  // Read lines from the file until no more are left.
  while (inputFile.hasNext())
  {
     // Read the map.
     String map = inputFile.nextLine();
     charMap = map.toCharArray();

     // Display the map.
     System.out.println(charMap);
  }

  // Close the file.
  inputFile.close();

} }

1 Ответ

0 голосов
/ 05 ноября 2018

На основании вашего примера это рабочий пример, если вы хотите посчитать цифры в каждой строке файла.

// Read lines from the file until no more are left.
        while (inputFile.hasNext())
        {
            // Read the map.
            String map = inputFile.nextLine();
            charMap = map.toCharArray();

            // Display the map.
            System.out.println(countNumber(charMap));
        }

// метод

private static int countNumber(char[] chars) {
        int count = 0;
        for (int i=0; i<chars.length; i++) {
            if (Character.isDigit(chars[i])) {
                count++;
            }
        }
        return count;
    }

В качестве альтернативы, если вы можете сделать это самым простым способом, 1) Считать содержимое всего файла в виде строки, 2) Построить массив из строки, 3) Подсчитать их, как показано ниже:

String inputFile = new Scanner(file).useDelimiter("\\z").next();

char[] charMap = inputFile.toCharArray();
System.out.println(countNumber(charMap));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...