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