java - 扫描仪一开始就忽略空白

标签 java java.util.scanner stdin stdio

我正在使用扫描仪获取字符串的输入。我的代码如下

String s=scan.next();
if(scan.hasNext()){
    s +=scan.nextLine();
}

但问题是它没有读取开头的空格。

示例

Input            :    Hello   World

Output should be :    Hello   World

Output is        :Hello   World

请澄清错误并帮助我纠正。

最佳答案

next() 方法用于让我们获取下一个单词(标记),而无需前面的分隔符。扫描仪使用的默认分隔符是一个或多个空格,因此设计时会忽略它。

如果您希望 s 保存整行(或当前行的其余部分),包括分隔符,则跳过 next() 并仅使用 nextLine().

String s = scan.hasNextLine() ? scan.nextLine() : "";

但是要注意混合 nextnextLine 时经常遇到的问题:Scanner is skipping nextLine() after using next(), nextInt() or other nextFoo() methods

关于java - 扫描仪一开始就忽略空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42566874/

相关文章:

java - Guice Multibinder 用于具有特定值的注释

Java Scanner 忽略答案

java.util.NoSuchElementException : No line found

c# - 在 C# 中检查标准输入

c - 在管道之后恢复标准输入

java - 如何避免在 Quartz 中同时运行两个作业?

java - 文本字段的 numberformaexception + 带条件的文本字段的格式错误

java - if else 语句没有停止问题

ruby - 在 Ruby 中连续读取外部进程的 STDOUT

java - 如何为 lombok 编写具有单一注释的集合数据类型的自定义 build() 函数?