2017-02-18 6 views
1

私のプログラムは私にを入力するとの3文字を5ではなくにします。どうしてこんなことに? BufferedReader#read()のJavadocからプログラムは私に望ましい結果を与えていません

import java.io.*; 
public class Prog{ 

    public static void main(String[] args) throws IOException { 
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     char c[] = new char[5]; 

     for(int i=0;i<-4;i++){ 
      c[i]= (char) br.read(); 
     } 


    } 
} 
+0

どのように文字を入力していますか?Enterを押して1つずつ入力しますか? – TheLostMind

+0

ループから最初にマイナスを削除する – FSm

答えて

2

は、言い換えれば、単一の文字

を読み込み

、これは各文字一つ一つに読み込みます。で、

public static void main(String[] args) throws IOException { 
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    char c[] = new char[5]; 

    for (int i=0; i<=4; i++) { 
     c[i] = br.readLine().charAt(0); 
    } 
} 

このアプローチは、一度に一つのラインに読み込みます:

first character 
ENTER 
second character 
ENTER 
third character 

使用readLine():あなたが唯一の3つの文字を入力することができますように見える理由は、あなたが押しているので、それぞれの文字の後に入力していますこの場合、行は1文字とそれに続く改行で定義されます。与えられた行の入力に複数の文字を入力すると、最初の文字のみが使用されます。

関連する問題