2016-11-04 2 views
1

単純に、ユーザーが一度に(複数の)テキストの塊をコンソールにペーストすると、そのチャンクをつかんで使用することができます。Stdinの分割されたチャンクを使用可能な形式に変換する

現在、私のコードは、しかしdoStuffが呼び出されることはありません

val stringLines: List[String] = io.Source.stdin.getLines().toList 
doStuff(stringLines) 

です。 stdinイテレータには「終わり」がないことが分かりますが、現在のように入力をどのように取得できますか?私は多くのSO答えをチェックしましたが、それらのどれも照合する必要がある複数の行には対応していません。私はユーザーの入力のすべての行を一度に持つ必要があり、常にデータの単一のペーストとして来るでしょう。

+0

タイピングされた2つの行と、ゆっくりと、チャンクとして貼り付けられた2つの行の違いを、どのように分かりますか?それぞれにタイムスタンプを付けると、時間差<しきい値がチャンクであると判断できます。 「チャンクされた」ものを識別する別の方法はありますか? – jwvh

+0

@jwvhはい、うまくいくでしょう。 1秒以内に到着するテキストのブロックはグループ化されるべきであり、テキストは1回または2回入力され、間には大きなギャップがあります。あなたはそれを慣習的にする方法を提案できますか? – sudom82

答えて

0

これは概要ですが、うまくいくようです。これまで遭遇していなかったJava Executorsを掘り下げなければなりません。正しく使用していない可能性があります。

タイムアウト値で試してみるといいかもしれませんが、10ミリ秒でテストに合格します。

使い方は非常に簡単です。

val input: List[String] = getChunk 
+0

これは素晴らしい、受け入れられた、ありがとう! – sudom82

関連する問題