2017-02-18 2 views
1

Mein Programm erlaubt mir nur geben Sie 3 Zeichen in das Array und nicht fünf. Warum ist das so?Programm gibt mir nicht das gewünschte Ergebnis

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

Wie erfolgt die Eingabe der Zeichen? .. einzeln durch Drücken der Eingabetaste? – TheLostMind

+0

entfernen Sie das Minus zuerst aus Ihrer Schleife – FSm

Antwort

2

Von der Javadoc für BufferedReader#read():

liest ein einzelnes Zeichen

Mit anderen Worten, wird dies in jedem Zeichen eines nach dem anderen lesen. Der Grund scheint es, dass Sie nur drei Zeichen eingeben können, weil Sie nach jedem Zeichen drängen:

first character 
ENTER 
second character 
ENTER 
third character 

Verwendung readLine():

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); 
    } 
} 

Dieser Ansatz in einer Zeile zu einem Zeitpunkt gelesen wird, in In diesem Fall wird eine Zeile als einzelnes Zeichen gefolgt von einem Zeilenumbruch definiert. Wenn Sie in einer gegebenen Zeileneingabe mehr als ein Zeichen eingeben, wird nur die erste verwendet.

Verwandte Themen