Zeichenkettenverarbeitung

Reguläre Ausdrücke

Pig-Latin-Konverter

Die Pattern/Matcher erlauben nicht nur das Suchen und Ersetzen, sondern bieten noch weitere interessante Möglichkeiten. Interessant vom Matcher sind die Methoden appendReplacement() und appendTail(). Evaluiere, ob man einen http://en.wikipedia.org/wiki/Pig_Latin-Konverter mit diesen speziellen Methoden einfach schreiben kann.

Tokenizer, Mustererkennung

StringTokenizer *

Schreibe eine Klasse WordWrapper mit einer statischen Methode String wrapWord(String s, int len), die eine Zeichenkette s in kleine Teilzeichenketten der Länge len zerlegt und mit Return getrennt wieder zurückgibt. Mit einem String

"Der Sehnsucht entgegen, sie erleben. Wer kann das schon. Den Träumen entgegen, "+
"sie erleben. Wer macht das schon. Den Gefühlen entgegen, sie erleben. Wer wagt das schon. "+
"Der Liebe entgegen, sie erleben. Wer darf das schon."

wird zum Beispiel bei einer Zeilenlänge von 20 folgender String zurückgegeben:

Der Sehnsucht
entgegen, sie
erleben. Wer kann
das schon. Den
Träumen entgegen,
sie erleben. Wer
macht das schon.
Den Gefählen entgegen,
sie erleben. Wer
wagt das schon. Der
Liebe entgegen, sie
erleben. Wer darf
das schon.

Lösung

Ersetzen eines Teilstrings *

Obwohl die Klasse java.lang.String eine ganze Reihe nützlicher Methoden bietet, ist sie doch nicht ohne Schwachstellen. So fehlt in der aktuellen Version des JDK beispielsweise eine Methode, die es erlaubt, jedes Auftreten eines vorgegebenen Teilstrings gegen einen anderen auszutauschen. Zwar gibt es die Methode replace() aus java.lang.String, diese erlaubt es aber lediglich, ein einzelnes Zeichen gegen ein anderes auszutauschen. Schreibe eine Methode replaceString(), die in einem gegebenen String alle Vorkommen eines Strings s1 gegen einen String s2 austauscht. s1 und s2 dürfen dabei beliebig (auch unterschiedlich) lang sein.

Lösung

Reguläre Ausdrücke **

Löse die Aufgabe einfaches Match.

Strings formatieren

Klasse java.text.DecimalFormat *

Analysiere nachfolgendes Programmsegment:

double d = 12345.67890;
DecimalFormat df = new DecimalFormat( "###,##0.00" );
System.out.println( df.format(d) );

Was macht die Klasse java.text.DecimalFormat? Welche Formatierungsanweisungen sind erlaubt? Stelle eine Tabelle zusammen und belege die Formatierungen mit einem Beispiel. Die Klasse java.text.DecimalFormat existiert nicht alleine für die Formatierung. Es gibt noch einige "Verwandte". Welche sind das? Nenne Aufgabenbereiche, Unterschiede und Gemeinsamkeiten.