扫描仪没有读完整个句子。或者,让我们说我正在编写一种方法来反转句子中的单词,同时将它们保留在句子中。
public static String reverse(String s)
{
String revStr = "";
for (int a = s.length()-1; a >= 0 ; a--)
{
revStr = revStr + s.charAt(a);
}
return revStr;
}
我的扫描仪:
Scanner scan = new Scanner(System.in);
String s = scan.next();
但是当我写一个句子时,它会反转第一个单词并停止。
答案 0 :(得分:4)
您使用scan.next()
。这将读取直到空格(或您之前设置的任何分隔符,您没有)。默认分隔符是空格。
使用scan.nextLine()
读取整行文字(即直到您按Enter键)。
查找并返回此扫描仪的下一个完整令牌。在完成令牌之前和之后是与分隔符模式匹配的输入。 [...]
您可以使用useDelimiter
public Scanner useDelimiter(Pattern pattern)
将此扫描仪的分隔模式设置为指定的模式。
答案 1 :(得分:2)
你需要使用nextline()函数而不是next()来捕获整行
更改String s= scanner.nextLine();
而不是String s= scanner.next();