| FormatierungFixedV2.java |
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 Ausgaben (mittels System.out.println) die die Ausführung
6 * genau zeigen. Betrachten Sie die unterschiedliche Verarbeitung
7 * der Eingaben:
8 *
9 hallo wie
10 geht es heute
11 *
12 hallo wie geht
13 es heute
14 *
15 hallo wie geht
16 es heute so?
17 *
18 */
19 public class FormatierungFixedV2 {
20 public static void main(String[] args) {
21 Scanner scanner = new Scanner(System.in);
22
23 int zeilenlaenge; // vorgegebene Zeilenlänge
24
25 String wort;
26
27 String zeile; // Zeile des neuformatierten Textes
28 int position; // Position des Zeilenendes
29 int zaehler; // zählt die erzeugten Zeilen
30
31 zeilenlaenge = 10;
32
33 zaehler = 0;
34
35 System.out.println("Bitte geben Sie einen Text ein");
36
37 zeile = "";
38 position = 0;
39
40 // wortweise Eingabe
41
42 int i = 0; // zählt Schleifendurchläufe
43
44 while (scanner.hasNext()) {
45 System.out.println( "> while-Schleife (" + (++i) + ")");
46
47 wort = scanner.next();
48
49 // eine Zeile wird aus den eingelesenen Worten aufgebaut
50
51 zeile = zeile + " " + wort;
52
53 // was hat sich in der neuen Zeile bereits angesammelt?
54 System.out.println( "(\"" + zeile + "\")");
55
56 // Position des Zeilenendes wird aktualisiert
57
58 position = position + 1 + wort.length();
59
60 if (position >= zeilenlaenge) {
61
62 // wenn vorgegebene Zeilenlänge erreicht:
63
64 zaehler = zaehler + 1;
65
66 ausgabeZeile(zaehler, zeile); // Ausgabe der Zeile
67
68 zeile = ""; // neue Zeile, noch leer
69 position = 0;
70 }
71 }
72
73 System.out.println( "> while-Schleife beendet" );
74
75
76 // eventuell noch nicht ausgegebene letzte Zeile
77
78 if (zeile.length() > 0 ) {
79 zaehler = zaehler + 1;
80 ausgabeZeile(zaehler, zeile);
81 }
82
83 }
84
85 /**
86 * Ausgabe einer Zeile
87 */
88 private static void ausgabeZeile(int nummer, String zeile) {
89 System.out.println("*** Zeile " + nummer + ":" + zeile + " ***");
90 }
91
92 }
93