java - 从 Scanner 和 JOptionPane 加载的字符串之间的区别

标签 java java.util.scanner whitespace joptionpane

我想知道从 Scanner.next() 加载的 String 对象和 JOprionPane.showInputDialog("text"); 之间有什么区别

当我使用 Scanner 时,我的小程序遇到了问题:

 Scanner sc = new Scanner(System.in);
 String s = sc.next();
 s = s.replaceAll("\\s+", "");

我写道,假设“Dami an”,结果是“Dami”

但是当我使用 JOptionPane 加载 String 时:

    String s = JOptionPane.showInputDialog("Text");
    s = s.replaceAll("\\s+", "");

结果是(正如我在前面的示例中所预期的那样)“Damian”。

为什么结果不同?

感谢您的帮助:)

最诚挚的问候:D

最佳答案

sc.next() 仅返回单个 token ,因此它仅在您第一次调用它时获取 Dami,而不是 Dami an >。如果再次调用 sc.next(),您将得到 an

如果您想一次获取整行,请使用 sc.nextLine()

关于java - 从 Scanner 和 JOptionPane 加载的字符串之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34644583/

相关文章:

java - 在 Java 中执行文件 .lnk

java - Android:在另一个 Activity (由该 RecyclerView 启动)调用 finish() 后,RecyclerView 项目的 onClick() 被无意激活

java - Android edittext限制输入的字符

java - 使用扫描仪读取日语字符

C++ if 语句不解析空格

java - 下载 torrent java 时出现问题

java - 尝试使用扫描仪时出现 "Cannot be resolved to a type"

java - Scanner 构造函数导致 bufferedReader 返回 null

c++ - 是否内联这个函数?

c - 如何使用 scanf/sscanf 确认没有空格或尾随数据?