扫描仪没有读完整句话句

时间:2015-11-27 12:10:29

标签: java

扫描仪没有读完整个句子。或者,让我们说我正在编写一种方法来反转句子中的单词,同时将它们保留在句子中。

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();

但是当我写一个句子时,它会反转第一个单词并停止。

2 个答案:

答案 0 :(得分:4)

您使用scan.next()。这将读取直到空格(或您之前设置的任何分隔符,您没有)。默认分隔符是空格。

使用scan.nextLine()读取整行文字(即直到您按Enter键)。

来自documentation

  

查找并返回此扫描仪的下一个完整令牌。在完成令牌之前和之后是与分隔符模式匹配的输入。 [...]

您可以使用useDelimiter

更改分隔符
public Scanner useDelimiter(Pattern pattern)
  

将此扫描仪的分隔模式设置为指定的模式。

答案 1 :(得分:2)

你需要使用nextline()函数而不是next()来捕获整行 更改String s= scanner.nextLine();而不是String s= scanner.next();