如何使用Scanner逐行读取用户输入(包括空格)?

时间:2015-12-14 09:16:52

标签: java

我需要逐行读取用户输入(可能包含空格)。我已经阅读了Scanner doesn't see after space个问题。所以我使用scanner.nextLine(),但这种方法对我的程序没有帮助。以下是我的示例程序......

public class TestingScanner {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("How many friends do you have ?");
    int size = sc.nextInt();
    String[] names = new String[size];
    for (int i = 0; i < size; i++) {
        System.out.println("Enter your name of friend" + (i + 1));
        names[i] = sc.nextLine();
    }
    System.out.println("*****************************");
    System.out.println("Your friends are : ");
    for (int i = 0; i < names.length; i++) {
        System.out.println(names[i]);
    }
    System.out.println("*****************************");
    }
}

在runnig我的程序中,在插入no:of friend之后,我的程序产生如下两行。我该如何解决?感谢。

enter image description here

1 个答案:

答案 0 :(得分:2)

int size = sc.nextInt();使用sc.nextLine()后使用换行符,否则,循环中的nextLine()会占用它们,这不是您想要的。

解决方案

int size = sc.nextInt();
sc.nextLine();