2017-07-22 3 views
0

Ich versuche Code zu erstellen, der Eingaben von einer Datei akzeptiert und sie in eine variable Spaltenbreite umschließt. Es verwendet Leerzeichen als Trennzeichen und, wenn das Wort dazu führen würde, dass die Zeilenlänge die Spaltenbreite überschreitet, die Wörter in der Zeichenkette in Datei ausgeben und eine neue Zeile beginnen. Es gibt einen logischen Fehler in meiner Schleife und nur 2 Wörter werden pro Zeile gedruckt, und das zweite Wort in einer Zeile wird das erste Wort in der nachfolgenden Zeile. Hier ist mein Code so weit:Erstellen von Zeilenumbrüchen mit variabler Länge mit hasNext in Java

StringBuilder line = new StringBuilder(); 
    while (reader.hasNext()) {   
     String word = (reader.next() + " ");    
     int length = line.length();   
     if (length <= width)     
     line.append(word); 
     outputStream.println(line); 
     line.delete(0, length); 
    } 

Antwort

0

Annahme: Jedes Wort (einschließlich "„) in dem Eingang eine Länge von weniger als oder gleich die genannten Spaltenbreite

StringBuilder line = new StringBuilder(); 
while (reader.hasNext()) {   
    String word = (reader.next() + " ");    
    int length = line.length() + word.length();   
    if (length <= width) {    
    line.append(word); 
    continue; 
    } 
    outputStream.println(line); 
    line.setLength(0) 
    line.append(word); 
} 
if(line.length() > 0){ 
outputStream.print(line); 
} 
+0

Es ist wahr - supercalifragilisticexpialidocious würde einen Wurf Ausnahme. Jetzt arbeiten - vielen Dank für die Hilfe! –

Verwandte Themen