我是一个编写Java代码的新手。我还没有读过关于循环的内容。我只是在if-else语句中。我的代码工作,除非我输入一个句子,只有第一个单词被识别。如果我输入一个没有空格的句子,那就完美了。如何获取代码才能看到整个句子?谢谢!
import java.util.Scanner;
public class Program04
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
System.out.println("Write a complete sentence with proper grammer:");
String sentence = keyboard.next();
boolean qMark = sentence.contains("?");
boolean wow = sentence.contains("!");
if (qMark)
System.out.println("Yes");
else if (wow)
System.out.println("Wow");
else
System.out.println("You always say that.");
}
}
答案 0 :(得分:3)
使用
keyboard.nextLine();
而不是
keyboard.next();
答案 1 :(得分:2)
查看API,特别是关于nextLine()
的部分。
答案 2 :(得分:0)
Scanner.next()
仅返回下一个标记,默认情况下,该标记只是一个单词(以空格分隔)。如果你想要整个句子你可以将分隔符更改为'\ n':keyboard.setDelimiter("\n");
,或者你可以学习循环然后遍历整个句子。
编辑:
或者,正如其他人所指出的那样,nextLine()
。这更便携,因为mac使用'\ r',我不会理解我所说的。
答案 3 :(得分:0)
import java.util.Scanner;
public class Program04{
public static void main(String[] args){
Scanner keyboard = new Scanner(System.in);
System.out.println("Write a complete sentence with proper grammer:");
String sentence = keyboard.nextline();
*//this graps full text but next ignores the other words after a space is given*
boolean qMark = sentence.contains("?");
boolean wow = sentence.contains("!");
if (qMark)
System.out.println("Yes");
else if (wow)
System.out.println("Wow");
else
System.out.println("You always say that.");
}
}