【问题标题】:Java scanner issue - input mismatchJava 扫描程序问题 - 输入不匹配
【发布时间】:2015-06-17 22:30:06
【问题描述】:

如何在 Java 中最有效地分别扫描 int 和 letter?例如扫描"6L"并将6保存为int并注册L

【问题讨论】:

  • 如果您尝试实现它,请同时发布您的代码。

标签: java int java.util.scanner


【解决方案1】:

示例代码会有所帮助,因为 Stack Overflow 通常用于调试,它并不是真正的编程教程论坛。不过,这是一个很好的问题,所以对于任何复杂的文本分析,我建议您这样做。

如果您已经在使用像扫描仪这样的复古设备,请扫描包含您的文本表示的 String。获得字符串后,使用正则表达式。

在你的情况下,应该是这样的:

String sz = scanner.next();

Pattern pattern = Pattern.compile("(\\d+)(\\w+)");  //meaning some number
// of digits, immediately followed by some number of word characters
Matcher matcher = pattern.matcher(sz);

int number = Integer.parseInt(matcher.group(0));
String letters = matcher.group(1);

你有它(虽然注意那个特定的表达式不理解小数点,你必须修改它。)

您可以找到对正则表达式的完整解释here,以及一个方便的测试它们的站点here。我希望这能解决你的问题。祝你好运!

【讨论】:

    猜你喜欢
    • 2010-12-31
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    相关资源
    最近更新 更多