Lösungsvorschlag 4.2. - Aufgabe 6: Unterschied zwischen den Versionen

Aus ComeniusWiki
Wechseln zu: Navigation, Suche
 
Zeile 1: Zeile 1:
<pre>
+
<syntaxhighlight lang="java">
 
public void crypto2(String txt){
 
public void crypto2(String txt){
  
Zeile 13: Zeile 13:
 
System.out.print(txt.charAt(i));}
 
System.out.print(txt.charAt(i));}
 
}
 
}
</pre>
+
</syntaxhighlight>
  
  
 
'''Zusatzaufgabe'''
 
'''Zusatzaufgabe'''
  
<pre>
+
<syntaxhighlight lang="java">
 
public void crypto2Decode(String txt){
 
public void crypto2Decode(String txt){
  
Zeile 35: Zeile 35:
 
}
 
}
 
}
 
}
</pre>
+
</syntaxhighlight>
  
 
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.
 
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.

Aktuelle Version vom 22. Januar 2015, 13:50 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.