1   import java.util.Scanner;
2   /**
3    * 183.592 Programmierpraxis TU Wien WS2014/15 H.Moritsch
4    * Formatierung eines Textes durch Begrenzung der Zeilenlänge
5    * (mit lokaler Variablen, return-Anweisung)
6    */
7   public class FormatierungV2 {
8       public static void main(String[] args) {
9           Scanner scanner = new Scanner(System.in);
10  
11          int zeilenlaenge=0;     // vorgegebene Zeilenlänge
12  
13          String zeile;           // Zeile des neuformatierten Textes
14          int position;           // Position des Zeilenendes 
15          int zaehler;            // zählt die erzeugten Zeilen 
16  
17          System.out.println("Bitte geben Sie die Zeilenlänge ein");
18    
19          // wenn es eine ganze Zahl in der Eingabe gibt
20          if (scanner.hasNextInt()) {
21  
22              String zeilenrest;                  // lokale Variable (if)
23          
24              // nächste ganze Zahl
25              zeilenlaenge = scanner.nextInt();       
26              
27              System.out.println("Zeilenlänge: " + zeilenlaenge);
28              
29              // eventueller Rest bis zum Zeilenende
30              zeilenrest = scanner.nextLine();
31              if (zeilenrest.length() > 0)
32                  System.out.println("[" + zeilenrest + "]" + " war doch nicht nötig ;-)");
33          }
34          
35          else {
36              System.out.println(scanner.next() + " ist leider keine ganze Zahl :-!");
37  
38              /*****/
39              return;     // Beendigung der main-Methode und damit des ganzen Programms
40              /*****/
41          }
42      
43          // weitere Verarbeitung mit eingegeber Zeilenlänge
44          
45          zaehler = 0;
46      
47          System.out.println("Bitte geben Sie einen Text ein");
48  
49          zeile    = "";
50          position = 0;
51  
52          // wortweise Eingabe 
53  
54          while (scanner.hasNext()) {
55  
56              /*****/
57              String wort = scanner.next();   // lokale Variable (in while)
58              /*****/
59  
60              // eine Zeile wird aus den eingelesenen Worten aufgebaut 
61  
62              zeile = zeile + " " + wort;
63  
64              // Position des Zeilenendes wird aktualisiert
65  
66              position = position + 1 + wort.length();
67  
68              if (position >= zeilenlaenge) {
69  
70                  // wenn vorgegebene Zeilenlänge erreicht:
71              
72                  zaehler = zaehler + 1;          
73  
74                  ausgabeZeile(zaehler, zeile);       // Ausgabe der Zeile
75  
76                  zeile    = "";                      // neue Zeile, noch leer
77                  position = 0;
78              }
79          }
80          
81          // eventuell noch nicht ausgegebene letzte Zeile
82      
83          if (zeile.length() > 0 ) {
84              zaehler = zaehler + 1;
85              ausgabeZeile(zaehler, zeile);
86          }
87  
88      }        
89  
90      /**
91      * Ausgabe einer Zeile
92      */ 
93      private static void ausgabeZeile(int nummer, String zeile) {
94          System.out.println("Zeile " + nummer + ":" + zeile);
95      }
96  
97  }
98