Lösungsvorschlag 4.2. - Aufgabe 6: Unterschied zwischen den Versionen
Aus ComeniusWiki
(Die Seite wurde neu angelegt: „<pre> public void crypto2(String txt){ //Umwandlung in Kleinbuchstaben txt=txt.toLowerCase(); //Erster Teil der Zeichenkette: Ausgabe jedes zweiten Buchstabe…“) |
|||
Zeile 23: | Zeile 23: | ||
//Überprüfen, ob Zeichenzahl gerade | //Überprüfen, ob Zeichenzahl gerade | ||
if(txt.length()%2==0){ | if(txt.length()%2==0){ | ||
− | //In der Schleife wird | + | //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++){ | for(int i=0; i<txt.length()/2;i++){ | ||
System.out.print(txt.charAt(i));System.out.print(txt.charAt(txt.length()/2+i));} | System.out.print(txt.charAt(i));System.out.print(txt.charAt(txt.length()/2+i));} |
Version vom 7. Dezember 2013, 10:36 Uhr
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.