2017-01-18 12 views
0

特定のログエントリのコマンドラインからuserinputを読みたい。Java読み込み文字列(角括弧)

public static String readString(String message) 
{ 
    System.out.print(message); 
    Scanner scan = new Scanner(System.in); 
    String response = null; 

    while (response == null || response.equals("") || response.length() <= 4) 
    { 
     if(response != null) 
     { 
     System.out.println("Type atleast 5 chars"); 
     System.out.println(message); 
     } 
     response = scan.next(); 
    } 
    return response; 
} 

だから限り、私は通常のリテラルを入力すると、すべてが正常に動作している:文字列を読み込むための 私の方法。 しかし、のようなものタイピング:レスポンスを分割するに

"[ログイン-123]サンプルテキスト"

戻ります。

なぜこの問題がどのように回避され、回避されるのかを知るため、すべての文字が改行までプローバーで読み込まれます。

+0

readStringメソッドでメッセージを渡す目的は何ですか? – Ankit

答えて

3

スキャナ。 next

このスキャナから次に完全なトークンを見つけて返します。完全なトークンの前に、デリミタパターンに一致する入力が続きます。

Aスキャナは空白デフォルトの一致によって区切りパターンを使用してトークンにその入力を破ります。

入力[log-123] sample textはスペースで区切られます。ブラケットとは何の関係もありません。

これは、あなたが望む以上であってもよい:

スキャナを。 nextLine

進歩現在の行過去このスキャナとはスキップされた入力を返します。このメソッドは、最後の行区切り文字を除いて、現在の行の残りの部分を返します。位置は次の行の先頭に設定されます。

関連する問題