| FormatierungV2.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 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