Strings und Stringteile kann man in Java problemlos entfernen, tauschen, etc.....
Die Unzulänglichkeiten der neuen Rechtschreibreform lassen sich so durch ein recht einfaches Java-Programm leicht aufheben. Hierzu sind lediglich einige String-Ersetzungen notwendig. Im Einzelnen sind dies:
- Wegfall der Dehnungen und Schärfungen
- Streichung der überflüssigen Groß-/Kleinschreibung
- v und ph ersetzt durch f, z ersetzt durch s, sch verkürzt auf s
- g, ch und c ersetzt durch k
- überflüssige h streichen
- j und y ersetzt durch i
- Wegfall der Umlaute
public class Rechtschreibreform {
public static String[] ein = new String[] {
// Stufe 1, v und ph ersetzt durch f, z ersetzt durch s, sch verkürzt auf s
"v", "ph", "z", "sch",
// Stufe 2, g, ch und c ersetst durch k
"g", "ch", "c",
// Stufe 3, Wegfall der Dehnungen und Schärfungen
"ß", "ie", "nn", "pp", "tt",
// Stufe 4, überflüsige h streichen
"h",
// Stufe 5, j und y ersetst durch i
"j", "y",
// Stufe 6, Wegfall der Umlaute
"ä", "ö", "ü" };
public static String[] aus = new String[] { "f", "f", "s", "s", "k", "k", "k", "s", "i", "n", "p", "t", "", "i",
"i", "a", "o", "u" };
private static String ersetze(String eingabe, int min, int max) {
// Wegfall der Großschreibung
eingabe = eingabe.toLowerCase();
for(int i=0; i<ein.length; i++){
System.out.println("Tausch: " + ein[i] + " -> " + aus[i]);
eingabe = eingabe.replaceAll(ein[i],aus[i]);
}
return eingabe;
}
public static void main(String[] args) {
System.out.println(ersetze("Oh wie schön, daß die deutsche Sprache einfacher und vielfältiger wird!", 0, ein.length));
}
}
Zunächst werden zwei Arrays deklariert
1, eines für die zu ersetzenden Zeichen (
String[] ein), eines für die Ersatzzeichen (
String[] aus). Jede Position im ersten Array entspricht derjenigen im zweiten. Die Arrays müssen also gleich groß sein.
Die Hauptmethode enthält in ihrer Signatur die Parameter für den zu wandelnden String, die Position, an der der Wandel beginnen (Beginn) und die Position, an der der Wandel beendet (Ende) werden soll.
In einer Schleife wird das Array der zu tauschenden Elemente durchlaufen und ein gefundenes Element gegen ein Ersatzelement getauscht. Dies bewerkstelligt die Methode
replaceAll(). Ihr werden als Parameter der zu tauschende und der Ersatzstring übergeben.