在循环中执行完整句子的问题

时间:2014-11-03 23:45:49

标签: java for-loop

我的方法应该打印出一定次数的陈述;但是,当我需要打印整个句子时,它只打印出一个输入语句中的一个单词。 示例:当我尝试输入"这是一个美好的一天",它只会输出单词" It"而不是整句话。

public static void  repeat(){
                System.out.println("Please input a number");
                Scanner inputRepeat = new Scanner(System.in); 
                int r = inputRepeat.nextInt();
                System.out.println("Enter a sentence to repeat: "); 
                String sentence = inputRepeat.next(); 
                for(int i = 0; i <= r; i++){
                    System.out.println(sentence); 
                }

3 个答案:

答案 0 :(得分:1)

它只打印第一个单词的原因是因为Scanner默认使用空格作为分隔符,所以它只接受你行中的第一个单词。要完成您想要的任务,请使用Scanner.nextLine(),如下所示:

public static void  repeat(){
                System.out.println("Please input a number");
                Scanner inputRepeat = new Scanner(System.in); 
                int r = inputRepeat.nextInt();
                System.out.println("Enter a sentence to repeat: "); 
                String sentence = inputRepeat.nextLine(); 
                for(int i = 0; i <= r; i++){
                    System.out.println(sentence); 
                }

答案 1 :(得分:0)

使用next()只会返回空格之前的内容。返回当前行后,nextLine()会自动将扫描仪向下移动。由于您的行包含空格,您需要使用nextLine()来读取该行。 所以改变

String sentence = inputRepeat.next();


String sentence = inputRepeat.nextLine();

答案 2 :(得分:-1)

你的String sentence = inputRepeat.next();必须进入循环