Hey leutz, ich habe ein programm geschriben ' Caesar Chiffre' bin noch anfänger und habe ein Problem.
Mein Programm soll einen text den man in der Kommandozeile eingibt verschlüsseln, das bekomme ich hin!
Dann soll er jedoch den verschlüsselten ausgegebenen Text einlesen und den wieder entschlüsseln.
Blöß wie lese ich eine zeil die ich ausgegeben habe ein?
Mein Funktionierender Code zum einlesen und verschlüsseln:
Ist für euch vllt zu viel arbeit aber ich hab halt noch keine ahnung und bin froh wenns läuft ^^.
nun dann will ich den die ausgabe einlesen. aber da ich nicht einfach schreiben kann EingabeNeu = System.out.print(AusgabeEn + AusgabeUml); -da AusgabeUml mal vorkommt und mal nicht (und er beim compilieren fehler entdeckt), will ich die Kommandozeile auslesen und dann das ganze noch mal machen bloß andersrum:
Ich danke schon mal und falls mein Code nicht ganz richtig sein sollte hab ich im anhang nocheinmal die originale zum testen.
Mein Programm soll einen text den man in der Kommandozeile eingibt verschlüsseln, das bekomme ich hin!
Dann soll er jedoch den verschlüsselten ausgegebenen Text einlesen und den wieder entschlüsseln.
Blöß wie lese ich eine zeil die ich ausgegeben habe ein?
Mein Funktionierender Code zum einlesen und verschlüsseln:
Ist für euch vllt zu viel arbeit aber ich hab halt noch keine ahnung und bin froh wenns läuft ^^.
Java:
import java.lang.*;
import java.io.*;
public class Caesar
{
public static String readString()
{
BufferedReader reader = new
BufferedReader(new InputStreamReader(System.in));
System.out.flush();
try{return reader.readLine();}
catch(Exception e) {System.out.println(e);}
return new String("");
}
public static void main(String[] args)
{
int var, varUml, key=1, caps=32;
String Eingabe, AusgabeEn, AusgabeDe, AusgabeUml;
System.out.println("Der unverschluesselte Text:");
Eingabe = readString();
System.out.println("\nDer verschluesselte:");
for(int i=0; i<Eingabe.length(); i++)
{
varUml = 101;
var = Eingabe.charAt(i);
if("a".charAt(0) <= var && var <= "z".charAt(0))
{
var = var + key;
varUml = 0;
// größer z - mache bei a weiter
if(var > "z".charAt(0))
{var = var-26;}
}
if("A".charAt(0) <= var && var <= "Z".charAt(0))
{
var = var + key + caps;
varUml = 0;
if(var > "z".charAt(0))
{var = var-26;}
}
// Überprüfen ob Sonderzeichen
if(var == "ü".charAt(0) || var == "Ü".charAt(0))
{
var = "u".charAt(0) + key;
if(var > "z".charAt(0))
{var = var-26;}
varUml += key;
// größer z - mache bei a weiter
if(varUml > "z".charAt(0))
{
var = var-26;
}
}
//if(... das selbe mit ö und ä
// umwandeln von int zu String
if(var != 32 && varUml != 0)
{
AusgabeEn = String.valueOf((char)var);
AusgabeUml = String.valueOf((char)varUml);
}
else if(var != 32 && varUml == 0)
{
AusgabeEn = String.valueOf((char)var);
AusgabeUml = "";
}
else
{
AusgabeEn = "";
AusgabeUml = "";
}
System.out.print(AusgabeEn + AusgabeUml);
}
Java:
// Weiterführung des vorigen Codes
System.out.println("\n\nDer Encrypte Text:");
// ? CMD-Ausgabe einlesen
for(int i=0; i<Eingabe.length(); i++)
{
var = Eingabe.charAt(i);
if("a".charAt(0) <= var && var <= "z".charAt(0))
{
var = var - key;
if(var < "a".charAt(0))
{var = var+26;}
}
if("A".charAt(0) <= var && var <= "Z".charAt(0))
{
var = var - key + caps;
varUml = 0;
if(var < "a".charAt(0))
{var = var+26;}
}
if(var != 32)
AusgabeDe = String.valueOf((char)var);
else
AusgabeDe = "";
System.out.print(AusgabeDe);
}
}
Ich danke schon mal und falls mein Code nicht ganz richtig sein sollte hab ich im anhang nocheinmal die originale zum testen.