1

私たちの教授は、文字列を解析するためのラボを行っています。彼は私たちにファイルの使用を許可することを拒否し、文字列の段落をコピーして貼り付ける場合はそれを解析する必要があると言います。私の問題は、コピーアンドペースト時にSTDからデータを取得する方法がわからないことです(ファイルを使用すると、これをはるかに簡単に行うことができます)。

public static void main(String[] args)
  {
    Scanner finput;
    String input;
    System.out.println("Enter Data: ");
    finput = new Scanner(System.in);

    input = finput.nextLine();
            System.out.println("OUTPUT")
    System.out.println(input);
    System.out.println(input.length());
    while(finput.hasNextLine())
    {
        input = finput.nextLine();
        System.out.println(input);
    }
  }

これは私がこれまでに得たものです。私の唯一の問題は、段落をコピーしてコンソールに貼り付けると(Eclipseを使用)、Enterキーを押さない限り最後の行を取得しないことです。もう一度何かを入力してEnterキーを押すと、前の行が次のように新しいエントリと連結されます。

Enter Data:
FirstLine
SecondLineOUTPUT
FirstLine
junk
SecondLinejunk

入力が1行ずつの場合、この問題は発生しません。また、コピーして貼り付けても、Enterキーを押して続行する必要がない理由もわかりません。

4

3 に答える 3

1

Enterキーを押さない限り、入力ストリームは行の「終わり」が何であるかを知る方法がないため、あなたが考えていることを行う方法はありません。

次のテキストを入力する場合を検討してください。

ABCD
EFGH

しかし、あなたは本当に 2 行目がEFGではなくであることを意味していましたEFGH。どうすればそれを決定する方法があるでしょうか?コピーと貼り付けは、実際に入力するのとまったく同じですが、はるかに高速です。

教授が段落の最後で Enter キーを押してくれると思います。

于 2012-09-17T23:09:24.473 に答える
0

EOF 文字 (Unix/Linux では CTRL+D、Windows では CTRL+Z) を送信して、入力が終了したことをコンソールに伝えるだけです。

于 2016-07-02T12:54:59.707 に答える
0

ちょうどあなたがコピーしている間に..入力として機能するもう1つの空白をコピーしてください!!

于 2016-12-11T07:47:51.617 に答える