java - Scanner 类的问题

标签 java groovy dsl java.util.scanner basic

我正在使用 Groovy 构建一个可以处理 BASIC 脚本的 DSL。

我有这样一行:

100 INPUT V

由正则表达式获取,该正则表达式将一些代码注入(inject)正在执行的脚本中:

    def retString = "scan = new Scanner(System.in);"
    retString += "${matcher[0][1]} ="
    retString += "scan.nextLine()\n"
    return retString

此代码已按时执行,但从未返回(即扫描仪永远不会从 nextLine() 返回,因此不会返回 V/matcher[0][1] 的值,而是无论如何,代码都会卡在等待键盘输入我按了多少次 Enter 键。)

我在这里投票错了什么?输入在键入时会在 TextArea 中回显(即,这是当时的焦点) - 与此相关吗?

最佳答案

我不知道这是问题中的拼写错误还是真正的错误,但你有:

retString + "${matcher[0][1]} ="

不应该是这个吗?

retString += "${matcher[0][1]} ="

但是,这可能不会影响您缺乏返回。我猜测问题是文本区域的输入流不是System.in。您应该检查正在使用的流,并围绕该流而不是 System.in 创建一个新的扫描器。

关于java - Scanner 类的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11100317/

相关文章:

grails - 使 IntelliJ 突出显示 Groovy/Grails 语法错误

grails - 对Grails数据源插件使用唯一约束会导致NullPointerException

maven - 如何在一个地方为许多 gradle 项目声明依赖版本

teamcity - 如何使用 TeamCity DSL versionedSettings 功能?

eclipse - 如何遍历 Xtext 生成的 EMF 对象树?

java - android 延迟加载图库问题

java - ECMAScript 与 C/Java 的 ConditionalExpression 语法差异

java - 如何更改谷歌 token 过期时间?

javascript - 具有 PHP 和 JavaScript 绑定(bind)的可移植表达式语言?

java - 在Java中找不到符号时间