Lösungsvorschlag 4.2. - Aufgabe 6
Aus ComeniusWiki
public void crypto2(String txt){ //Umwandlung in Kleinbuchstaben txt=txt.toLowerCase(); //Erster Teil der Zeichenkette: Ausgabe jedes zweiten Buchstaben ausgehend vom ersten Buchstaben for(int i=0;i<txt.length();i+=2){ System.out.print(txt.charAt(i));} //Zweiter Teil der Zeichenkette: Ausgabe jedes zweiten Buchstaben ausgehend vom zweiten Buchstaben for(int i=1;i<txt.length();i+=2){ System.out.print(txt.charAt(i));} }
Zusatzaufgabe
public void crypto2Decode(String txt){ //Überprüfen, ob Zeichenzahl gerade if(txt.length()%2==0){ //In der Schleife wird abwechselnd ein Zeichen des vordere und des hinteren Teils (ab txt.length()/2) der Zeichenkette ausgegeben for(int i=0; i<txt.length()/2;i++){ System.out.print(txt.charAt(i));System.out.print(txt.charAt(txt.length()/2+i));} } //Zeichenzahl ungerade else{ //In der Schleife für die ungerade Länge müssen die die Schleifenbedingungen angepasst werden for(int i=0; i<=txt.length()/2;i++){ System.out.print(txt.charAt(i));if(txt.length()/2+1+i<txt.length()){System.out.print(txt.charAt(txt.length()/2+1+i));};} } }
Die if-Bedingung im Schleifenrumpf bei den ungeraden Zeichenketten vermeidet eine outOfBounds-Exception, indem der Versuch vermieden wird, ein Zeichen auszugeben, das sich außerhalb der Länge der Zeichenkette befindet.