我的方法应该打印出一定次数的陈述;但是,当我需要打印整个句子时,它只打印出一个输入语句中的一个单词。 示例:当我尝试输入"这是一个美好的一天",它只会输出单词" 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);
}
答案 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();必须进入循环