2016-03-23 19 views
0

テキストプロセッサなどからコピーしたテキストを入力したいと思います。 nextLine()を使用すると、最初の行が導入され、StringBufferも使用できません。私は自分の問題を解決するために何も見つけていない。comandコンソールを使ってjavaにテキストを入力する方法は?

これは私のコードです:ここでは

public static void main (String args[]) { 
    Scanner keyboard= new Scanner(System.in); 
    StringBuffer lines= new StringBuffer(); 
    String line; 

    System.out.println("texto:"); 
    line= keyboard.nextLine(); 
    //lines= keyboard.nextLine(); //this doesn´t work 
    System.out.println(lines); 
} 

は私がやりたいの例です:

私は、テキストファイルからこのテキストをコピー:

ksjhbgkkg

sjdjjnsfj

sdfjfjjjk

次に、cmd(私はGeanyを使用します)に貼り付けます。

StringBuffer x = "ksjhbgkkgsjdjjnsfjsdfjfjjjk"

ありがとう: 私はこのようにStringBufferまたは類似(私が操作することができるもの)を取得できるようにしたいと思います!あなたはそれらの行を格納することができ

while(keyboard.hasNextLine()) { 
    line = keyboard.nextLine(); 
} 

+0

StringBufferに読み込み線を追加するのはどうですか?あなたの例では3つしかないので、1行以上を読むのはどうでしょうか? – Tom

+0

なぜjava.util.Scannerを使用しないのですか? – Laurel

+0

@Laurel 'Scanner keyboard = new Scanner(System.in);' ...この既存のコード行についてどう思いますか? – Tom

答えて

0

のようなものを使用してみてください。 (例えば、配列/ ArrayList)。

0

あなたはkeyboard.nextLineを(追加することができます)あなたのStringBufferに、のようなので:

lines.append(keyboard.nextLine()); 

たStringBufferので、これはあなたの目的に合わせなければならない付加される文字列を受け入れます。

@Cacheによって示されるようにあなたのような何かを与えることになるwhileループでこれを使用することができます。

while (keyboard.hasNextLine()) { 
     lines.append(keyboard.nextLine()); 
} 
0

@Cache Staheliは正しいアプローチを持っています。キーボード入力をStringBufferにどのように入力するかについて詳しくは、次の点を考慮してください。

public static void main(String[] args) { 
    Scanner keyboard = new Scanner(System.in); 
    StringBuffer lines= new StringBuffer(); 
    String line; 

    System.out.println("texto:");  

    while(keyboard.hasNextLine()) { // while there are more lines to read 
     line = keyboard.nextLine(); // read the next line 
     if(line.equals("")) {  // if the user entered nothing (i.e. just pressed Enter) 
      break;     // break out of the input loop 
     } 

     lines.append(line);   // otherwise append the line to the StringBuffer 
    } 

    System.out.println(lines);  // print the lines that were entered 
    keyboard.close();    // and close the Scanner 
} 
+0

私はあなたのコードを試しました、それは私に新しい行を導入させても、私は間に合うことができません...だから私は決してSystem.out.println(lines)に達しません。私は次のような条件を追加しようとしました:while(keyboard.hasNextLine()&& keyboard.nextLine!= "0"))それは動作しませんでした...(私は初心者ですので、あなたの前のお返事ありがとう! – Mercedes

+0

これは、入力ストリーム 'System.in'があなた自身を閉じない限り閉じないためです(Ctrl + Dキーを押している場合はWindows上で行うことができます)。このプログラムの目的のために、特定の項目を使用して入力の終わりを示すことができます。たとえば、ユーザーがEnterキーを押すと、プログラムを終了するようにすることができます。私の編集された答えを見てください。そして、Scanner.nextLine()メソッドは新しい行を入力から消費するので、新しい行の文字 "\ n"ではなく空の文字列 ""を検出したいと考えています。 – Matt

関連する問題