4

わかりましたので、ユーザーからの入力で何かをしなければならないこのプロジェクトに取り組んでいます

彼が入ったら言う

「12 3」

しかし、彼は2番目の入力を入力しません

そして、私がそれを呼び出すとしましょう

String something = in.readLine();

私が電話したら

String nextLine = in.readLine();

エラーが発生します。2 番目の入力がないかどうかを確認するにはどうすればよいですか?

public static void main(String [] args) throws IOException{

    BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); //ctr + shift + o


    String eachLine = in.readLine(); //ex. "12    5"" or "AB     12"


    String nextLine = in.readLine();

ユーザー入力の場合

"3 2" <<

しかし、2番目のものには入りません..私はnullpointerexceptionを取得します

4

2 に答える 2

2

それはあなたが「彼は2番目の入力を入力しない」という意味に依存します:

  • ユーザーがEOF文字を入力することを意味する場合(たとえば、LinuxではCTRL-D)、readLine()メソッドはを返しnullます。これは、アプリケーションが明示的にテストできます(テストする必要があります)。

  • ユーザーが単に何も入力しないという意味の場合、何も起こりません。アプリケーションは、ユーザーが次の行に入るのを待つだけです。これに対処するには、ある種のタイムアウトメカニズムが必要です...

于 2012-04-22T09:16:54.813 に答える
0

この目的でTimerクラスを使用できます。

こちらをご覧ください

何かのようなもの..

TimerTask task = new TimerTask(){
public void run(){
if( input is empty ){
System.out.println( "you input nothing. exit..." );
System.exit( 0 );
}
}
};

Timer.. _

Timer timer = new Timer();
timer.schedule( task, timeoutTime);

//入力を読む

String nextLine = in.readLine();

//タイマーをキャンセル..

timer.cancel();
于 2012-04-22T09:19:33.967 に答える