Lösungsvorschlag 4.2. - Aufgabe 6

Aus ComeniusWiki
Wechseln zu: Navigation, Suche
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.