我想知道从 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/