如何将用户输入的单行输出为多行?

时间:2019-02-15 23:54:46

标签: java intellij-idea

因此,基本上,我试图读取一行的用户输入,但是当我返回输入时,将其按空格分开。例如:

用户输入: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 :(得分:2)

如果您想输入一行,为什么要使用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);
}

答案 1 :(得分:0)

这是因为最后一个元素之间没有空格。如果您有35 56 78 N,那么前三个将被注册,因为它们后面有空格,但N之后没有空格。我建议使用子字符串。