0

Spring Source Suite 2.7.1 (複数の in.readLine()) で Groovy 1.7.10 のコンソールから複数の入力を読み取ろうとしていますが、コンソールでは最初のエントリしか入力できないようで、空白を入れます2 番目のエントリを移動し、3 番目のエントリを入力できるように移動し、4 番目のエントリを空白にします。以下は、私が使用しているコードです。

System.in.withReader {reader ->
        print  "w: "
        def w = reader.readLine()
        print  "x: "
        def x = reader.readLine()
        print "y: "
        def y = reader.readLine()
        print "z: "
        def z = reader.readLine()
} 

私が得ている出力は次のとおりです。

w: 1 x: y: 2 z:

ご覧のとおり、最初の行に入力し、2 番目に空白を入れ、3 番目の入力に入れ、4 番目に空白を入れます。これは、入力時に「Enter」を押すことと関係がありますか? readLine() は行を読み取ってテキストを取得することになっているため、改行は含まれないと思います。どんな助けでも大歓迎です。

ありがとう、

ファン

4

2 に答える 2

0

Java 6+ を使用していると仮定して、Consoleクラスを使用して行を読み取ってみてください。

def values = System.console().with { 
  [ 'w', 'x', 'y', 'z' ].inject( [:] ) { map, val ->
    map << [ (val):readLine( "$val: " ) ]
  }
}

println "Got w=$values.w x=$values.x y=$values.y z=$values.z"

Consoleただし、STS内で動作するかどうかはわかりません...

于 2011-09-29T08:06:49.910 に答える