Java: Problem mit Gartenzaun-Verschlüsselung

Hi!
Ich hab gerade in Java ein Programm geschrieben, mit dem man Texte mit der Gartenzaunmethode verschlüsseln kann. Das Problem: Der Text wird nicht richtig verschlüsselt. Wenn ich blubb verschlüsseln will kommt UBBUB statt BUBLB raus und wenn ich xx eingebe kommt X raus.
Vielleicht könnt ihr mir ja helfen :)

Code:
public class Verschluesselung {
	public static void main(String[] args){
		String text;
		int anz;
		
		System.out.print("Bitte Text zum Verschluesseln angeben: ");
		text=Keybd.getString();
		System.out.print("Wie oft soll der Text verschluesselt werden?");
		anz=Keybd.getInt();
		
		for(int i=0;i<anz;i++){
			text=gartenzaun(text);
		}
		
		System.out.println(text);
	}
	public static String gartenzaun(String originaltext){
		String normal; //original text+uppercase
		String normalx; //normal-unnötige zeichen
		String t=originaltext; //original text
		StringBuffer normalsb; //stringbuffer von normal
		StringBuffer teil1=new StringBuffer();
		StringBuffer teil2=new StringBuffer();
		int x=0;
		int y=1;
		int gaga; //länge von normalx
		
		normal=t.toUpperCase();
		normalsb=new StringBuffer(normal);
		
		for(int i=0;i<normalsb.length();i++){
			if(((normalsb.charAt(i)))<47||((normalsb.charAt(i)))>91){
				normalsb.deleteCharAt(i);
			}
		}
		
		normalx=new String(normalsb);
		gaga=normalx.length();
		
		for(int z=1;z+1<gaga;z=z+2){
			teil1.append(normalx.charAt(z+1));
			x++;
		}
		
		for(int a=0;a<gaga;a=a+2){
			teil2.append(normalx.charAt(a));
			y++;
		}
		
		String xy=new String(teil1);
		String yx=new String(teil2);
		return xy+yx;
	}
}

mfg
 
Code:
	for(int z=1;z+1<gaga;z=z+2){
			teil2.append(normalx.charAt(z));
			x++;
		}
		
		for(int a=0;a<gaga;a=a+2){
			teil1.append(normalx.charAt(a));
			y++;
		}
also z+1 weg, da z beim starten auf 1 gesetzt ist und damit immer nur jedes gerade Zeichen liest (wie die zweite Forschleife) und teil1 und teil2 in den Schleifen verteischen.
Wobei: Stringbuffer ist hier imho überflüssig ;)

Code:
public class Main {
	public static void main(String[] args){
		String text;		
		text=gartenzaun("blubbcb");		
		System.out.println(text);
	}
	public static String gartenzaun(String originaltext){
		String upperversion="",compactversion=""; //original text+uppercase
		String teil1="",teil2="";
		
		upperversion=originaltext.toUpperCase();		
		
		for(int i=0;i<upperversion.length();i++){
			if(!(((upperversion.charAt(i)))<'A'||((upperversion.charAt(i)))>'Z')){
				compactversion=compactversion+upperversion.charAt(i);  //einfach einen neuen String aus 
				//erlaubten Zeichen zusammensetzen
			}
		}
		//oder
		//compactversion=upperversion.replaceAll("[^A-Z]","");		:-)
		
		for(int z=0;z<compactversion.length();z=z+2){
			teil1=teil1+compactversion.charAt(z);
			
		}		
		for(int a=1;a<compactversion.length();a=a+2){
			teil2=teil2+compactversion.charAt(a);
			
		}
		
		return teil1+teil2; 
		
	}
}
 
Zurück
Oben