Ich habe ein kleines Problem.
Ich bin seit ein par Tagen dabei den Fehler in meiner Programmierung zu suchen. :rtfm:
Sinn und Zeck des ganzen Teil-Programms soll es sein, einen Text, vollständig ver und entschlüsseln zu können.
Da ich allerdings nach mehreren Test festgestellt habe, dass diesen nicht zuverlässig arbeitet, muss irgendwo ein Fehler sein, den ich nicht sehe. :bahnhof:
Es wäre nett, wenn Ihr mir da weiter helfen könntet.
Ich bin seit ein par Tagen dabei den Fehler in meiner Programmierung zu suchen. :rtfm:
Sinn und Zeck des ganzen Teil-Programms soll es sein, einen Text, vollständig ver und entschlüsseln zu können.
Da ich allerdings nach mehreren Test festgestellt habe, dass diesen nicht zuverlässig arbeitet, muss irgendwo ein Fehler sein, den ich nicht sehe. :bahnhof:
Es wäre nett, wenn Ihr mir da weiter helfen könntet.
Java:
char y = 'a';
final String text = "Wenn ich versuche, diesen Text zu entschluesseln, dann kommt nur Bahnhof dabei raus.";
String kodierterText = "";
String dekodierterText = "";
final String ABCD = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
final String abcd = "abcdefghijklmnopqrstuvwxyz";
final String ABCDArr [] = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
final String abcdArr [] = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
final int kodierung [] = {3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6,2,6,4,3,5};
int position [] = new int [text.length()];
String container [] = new String [text.length()];
int x = 0;
for (int i = 0;i < text.length();i++ )
{
container [i] = text.substring(text.length()-text.length()+i);
container [i] = container[i].substring(0,container[i].length()-container[i].length()+1);
System.out.print (container [i]);
}
System.out.println();
for (int i = 0;i < text.length();i++)
{
if (ABCD.indexOf(container[i]) > -1)
{
position [i] = ABCD.indexOf(container[i]);
y = 'x';
}
else
{
if (abcd.indexOf(container[i]) > -1)
{
position [i] = abcd.indexOf(container[i]);
}
else
{
if (container[i].equals("/"))
{
position[i] = -44;
}
if (container[i].equals("."))
{
position [i] = -34;
}
if (container[i].equals(","))
{
position [i] = -24;
}
if (container[i].equals(" "))
{
position[i] = -14;
}
}
}
if (position[i] > -1)
{
position [i] = position [i] + kodierung[x];
}
if (position[i] > 25)
{
position[i] = position[i]-26;
}
if (y == 'x')
{
if (position[i]>0)
{
kodierterText = kodierterText+ABCDArr[position[i]];
y = 'a';
}
if (position[i] == -14)
{
kodierterText = kodierterText+" ";
}
if (position [i] == -24)
{
kodierterText = kodierterText+",";
}
if (position [i] == -34)
{
kodierterText = kodierterText+".";
}
if (position [i] == -44)
{
kodierterText = kodierterText+"/";
}
}
else
{
if (position[i]>0)
{
kodierterText = kodierterText+abcdArr[position[i]];
}
if (position[i] == -14)
{
kodierterText = kodierterText+" ";
}
if (position [i] == -24)
{
kodierterText = kodierterText+",";
}
if (position [i] == -34)
{
kodierterText = kodierterText+".";
}
if (position [i] == -44)
{
kodierterText = kodierterText+"/";
}
}
x++;
if (x == 26)
{
x = 0;
}
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>ab hier dekodierung<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
for (int i = 0;i < kodierterText.length();i++)
{
container[i] = "";
}
for (int i = 0;i < kodierterText.length();i++ )
{
container [i] = kodierterText.substring(kodierterText.length()-kodierterText.length()+i);
container [i] = container[i].substring(0,container[i].length()-container[i].length()+1);
System.out.print (container [i]);
}
for (int i = 0 ;i < kodierterText.length();i++ )
{
position [i] = ABCD.indexOf(container[i]);
if (position [i] < 0)
{
position[i] = abcd.indexOf(container[i]);
}
if (container [i].equals(" "))
{
position [i] = -14;
}
if (container[i].equals(","))
{
position [i] = -24;
}
if (container[i].equals("."))
{
position[i] = -34;
}
if (container[i].equals("/"))
{
position[i] = -44;
}
}
x = 0;
for (int i = 0;i < kodierterText.length();i++ )
{
if (position[i] == ABCD.indexOf(container[i]) && position [i] > -1 )
{
position [i] = position [i] - kodierung[x];
if (position [i] < 0 )
{
position [i] = position[i] +26;
}
container[i] = ABCDArr [position[i]];
}
if (position[i] == abcd.indexOf(container[i]) && position [i] > -1 )
{
position [i] = position [i] - kodierung[x];
if (position [i] < 0)
{
position [i] = position[i] +26;
}
container[i] = abcdArr [position[i]];
}
if (position [i] == -14)
{
container [i] = " ";
}
if (position [i] == -24)
{
container [i] = ",";
}
if (position [i] == -34)
{
container [i] = ".";
}
if (position [i] == -44)
{
container [i] = "/";
}
x++;
if (x == 26)
{
x = 0;
}
dekodierterText = dekodierterText+container[i];
}
System.out.print("\n"+dekodierterText);