Как я могу вывести одну строку пользовательского ввода в несколько строк? - PullRequest
0 голосов
/ 16 февраля 2019

Так что, в основном, я пытаюсь прочитать пользовательский ввод одной строки, но затем разделить его на пробел, когда я верну ввод.Например:

Ввод пользователя: 35 56 78 N

Желаемый вывод:

35

56

78

N

Пока у меня есть:

import java.util.Scanner;
public class GeographicCoordinatesExtractor {
    public static void main(String[] args) {
        System.out.println("Hello and welcome to my program");
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter geographical coordinates: ");
        String data = sc.next();
        sc.useDelimiter(" ");
        String value = data.split(" ")[0];

        while (sc.hasNext()) {
            String sec = sc.next();

            System.out.println(value + "\n" + sec );
        }

    }}

И я получаю: 35

56

35

78

вместо:

35

56

78

N

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Это потому, что вы не "" (пробелы) между для последнего элемента.Если у вас 35 56 78 N, то первые три регистрируются, поскольку после них есть пробелы, но после N нет пробела. Я бы предложил использовать подстроки.

0 голосов
/ 16 февраля 2019

Если вы хотите ввести одну строку, почему вы используете Scanner#next?
Просто выберите Scanner#nextLine, затем разделите результат и зациклите полученный массив String.

final String data = sc.nextLine();                  // 35 56 78 N
final String[] values = data.trim().split(" ");     // [35, 56, 78, N]

for (final String v : values) {
    System.out.println(v);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...