/*Einlesung befehl decode.*/
while(sc.hasNext()){
/*eingelesene String wert in befehl gespeichert.*/
befehl = sc.next();
/*Ueberpruefung von befehl decode mit Methode equals().
Wenn decode decode ist , geht das Programm in If .*/
if(befehl.equals("decode")){
/*Wenn decode richtig ist , wird istDecodeEingegeben
(geaendert als true) wahr.*/
istDecodeEingegeben = true;
/*Hier wird eingelesene Schluessel in key gespeichert.*/
key = sc.next();
/*wenn decode eingegeben ist ,geht das Programm in If.*/
if(istDecodeEingegeben){
/*Ueberpruefung von Schluessel ob die alle
eingegebene String werte Ziffern sind.Mit "\\d+"
diese zeichen werden alle Schluessel ueberprueft.*/
if(key.matches("\\d+")){
/*Wenn die alle Schluessel ziffern sind , ist istKeyZahl
(istKeyZahl geaendert als true ) wahr.*/
istKeyEineZahl = true ;
}
}
/*wenn decode eingegeben und die Schluessel ziffer ist , geht das Programm in If.*/
if(istDecodeEingegeben && istKeyEineZahl){
/*Hier werden alle Ziffern von Schluessel ueberprueft ,
ob die Ziffern von Key nur einmal vorkommt */
for(int i = 0; i < key.length(); i++){
for(int j = i+1; j < key.length(); j++){
/*Wenn die Ziffern von Key zweimal oder mehrmal vorkommt ,
geht das Programm in If.*/
if(key.charAt(i) == key.charAt(j)){
/*Hier wird istKeyDoppelt(istKeyDoppelt geaendert als true) wahr .*/
istKeyDoppelt = true;
/*hier wird das Programm While Schleife verlaesst.*/
break;
}
}
}
}
/*Wenn die decode eingegeben und alle Schluessel Ziffern und
alle Schluessel nicht zweimal oder mehrmal vorkommt sind ,
geht das Programm in If .*/
if( !istKeyDoppelt && istKeyEineZahl && istDecodeEingegeben ){
/*Hier wird count Typ als Integer definiert und ist 0.*/
int count = 0 ;
/*Ueberpruefung von Schluessel, ob in einem Schluessel der Laenge von 0 bis n ist*/
for(int i = 0; i < key.length(); i++){
for(int j = 0; j < key.length(); j++){
if( key.charAt(i) == String.valueOf(j).charAt(0)) {
/*Hier wird count um 1 erhoeht*/
count++;
/*Wenn count gleich SchluesselLaenge ist ,
geht das Programm in If.*/
if(count == key.length()){
/*Hier wird istKeyObisN(istKeyObisN geaendert als true) wahr*/
istKeyObisN = true ;
}
}
}
}
}
/*Wenn keine Fehlern beim Ueberpruefen des Schluessels(Eigegebene Key Eine Zahl ist und
Key von 0 bis n ist und Ziffern von Key nur einmal vorkommt) gibt und
Decode eingegeben ist, geht das Programm in If .*/
if ( !istKeyDoppelt && istKeyEineZahl && istKeyObisN && istDecodeEingegeben){
/*Ueberpruefung des Bildes ob das bildlaenge (ohne ZeilenUmbrueche)
ein ganzzahliges Vielfaches der Schluessellaenge ist */
if ( bild.length() % key.length() == 0 ){
int count = 0 ;
/*hier ist die Laenge des Bildes vielfach wahr.*/
istBildVielfaches = true ;
/*Diese Schleife ist Aeussere Schleife ,hier wird die
Bildzeichenkette blockweise durchlaufen . */
for(int i = 0; i < bild.length(); i = i+ key.length() ){
/*Hier wird die BildLaenge (Ohne ZeilenUmbrueche)
blockwiese(bis laenge der Schluessellaenge) unterteilt
und wird in block eingefuegt */
block = bild.substring(i, i + key.length() );
/*Diese Schleife ist inner Schleife , hier wird die
Bildzeichenkette zeichenweise durchlaufen */
for(int j = 0; j < block.length(); j++) {
/*Hier wird die bloecke von Bild entschluesselt und
entschluesselte Bloecke wird in decodierte_Text eingefuegt */
decodierte_Text += block.charAt(Character.getNumericValue(key.charAt(j)));
/*Hier wird count um 1 erhoeht*/
count++ ;
/*Wenn count genau gleich Zeilenlaenge ist ,
geht das Programm in If .*/
if(count == zeile_1.length()) {
/*Und wenn decodierte_Text bis Laenge der ZeilenLaenge erricht,
dann ZeilenUmbruch ("\n")und in decodierte_Text eingefuegt .*/
decodierte_Text += "\n";
/*Hier wird count wieder 0 .*/
count = 0 ;
}
}
}
}else{
/*Wenn bildLaenge % SchluesselLaenge ungleich 0 ist,
gibt das Programm "INVALID KEY" aus.*/
System.out.println("INVALID KEY");
}
if ( !istKeyDoppelt && istKeyEineZahl && istKeyObisN && istDecodeEingegeben && istBildVielfaches){
/*Keine Fehlern beim Ueberpruefen des Schluessels gibt,
istKeyOk(wert von istKeyOk geaendert als wahr) ist wahr. */
istKeyOk = true ;
}
}
/*ein Fehler beim Ueberpruefen des Schluessels auftritt,gibt das Programm "INVALID KEY" aus*/
else {
System.out.println("INVALID KEY");
}
}
/*Wenn istKeyOk wahr ist (wenn Decode Eingegeben ist und Eigegebene Key Eine Zahl ist und
Key von 0 bis n ist und Ziffern von Key nur einmal vorkommt und das Bild Vielfaches ist ),
geht das Programm in if .*/
if (istKeyOk == true){
System.out.print(decodierte_Text);
System.out.println(zeile_1.length() + " " + zeilenAnzahl );
}
/*damit diese while-schleife nur einmal durchlaufen wird.*/
break;
}
/*Wenn keine Decode eingegeben wird.*/
if(!istDecodeEingegeben){
/*Hier wird Umbrueche von Zeilen gemacht und das Bild ausgegeben.
Hier wird das Bild in einzelne Zeilen unterteilt */
for(int i = 0; i < bild.length(); i = i + zeile_1.length()){
System.out.println(bild.substring(i, i+ zeile_1.length()));
}
/*Hier wird ZeilenBreite und ZeilenHoehe ausgegeben.*/
System.out.println(zeile_1.length() + " " + zeilenAnzahl );
}
}
}
}
From:
agahok...@hotmail.comTo:
javacod...@googlegroups.comSubject: RE: hata mesaji
Date: Fri, 8 Apr 2011 11:29:42 +0200