Обнаружена новая строка в ряду чисел в Java

#java #java.util.scanner

#java #java.util.scanner

Вопрос:

Допустим, у меня есть ряд чисел, подобных…

  1 2 3 4
 5 6 7 8
 9 0
  

Как я мог бы переходить по каждому int, но останавливаться, когда я достигаю новой строки? В настоящее время я использую, nextInt() и я знаю, что это nextLine() обнаружит новую строку, но я не уверен, как собрать это воедино. Лучше ли взять всю строку целиком и разобрать строку на отдельные целые числа? Или есть более гибкий способ сделать это?

Для моего примера я бы хотел, чтобы программа сохраняла 1 2 3 4 , 5 6 7 8 9 0 все в их собственном отдельном массиве.

Для получения дополнительной информации я использую java.util.Scanner и читаю текстовый файл.

Комментарии:

1. «Более плавный» будет зависеть от того, что вы в конечном итоге собираетесь делать с данными и сколько их имеется. Добавьте еще несколько деталей о том, что вы пытаетесь сделать.

2. Вы имеете в виду, что хотите ‘1 2 3 4’ в одном массиве, ‘5 6 7 8’ в другом массиве и так далее?

3. @mahendraliya: Да, именно. Вот что я имел в виду :]

Ответ №1:

Если вы хотите использовать Scanner , преобразуйте всю строку в строку, а затем создайте сканер на основе строки.

Комментарии:

1. Это фантастическая идея. Я бы никогда об этом не подумал! Слишком просто!

Ответ №2:

Вы можете открыть текстовый файл в режиме чтения и прочитать всю строку с помощью readLine() метода.

Затем вы можете разделить прочитанную строку символом пробела ( ‘ ‘), который автоматически выдаст вам массив.

Вы можете делать это до конца файла.

 import java.io.*;
class FileRead 
{
   public static void main(String args[])
  {
      try{
    // Open the file 
    FileInputStream fstream = new FileInputStream("textfile.txt");
    // Get the object of DataInputStream
    DataInputStream in = new DataInputStream(fstream);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));
    String strLine;
    delimiter = " ";
    int myArr[];
    //Read File Line By Line
    while ((strLine = br.readLine()) != null)   {
      myArr = strLine.split(delimiter);
      // store this array into some global array or process it in the way you want.
    }
    //Close the input stream
    in.close();
    }catch (Exception e){//Catch exception if any
      System.err.println("Error: "   e.getMessage());
    }
  }
}
  

Надеюсь, это поможет.