Caesar-Chiffre

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Soll einem Kumpel bei Caesar-Chiffre helfen. Es soll ein Text eingegeben werden und anschliessend wieder in coddierter Form wieder ausgegeben werden. Habe allerdings ein kleines Problem diesen teil hier logisch zu verstehen.
Code:
static char encode(char c, int n) {
		char erg = 32; // Initialisierung als Leerzeichen

		byte grosklein = 0;

		if (c >= 65 && c <= 90) // Großbuchstaben
			grosklein = 65;
		if (c >= 97 && c <= 122)// Kleinbuchstaben
			grosklein = 97;

		if (grosklein != 0) { // andere nicht kodieren
			erg = (char) ((c - grosklein - 1 + 26 + n) % 26 + grosklein + 1);
			return erg;
		} else
			return c;
	}

Leider ist mein Kumpel zur Zeit nicht errecihbar. Das Problem stellt sivh mir jetzt da, dass ich nicht weiss ob Groß- und Kleinbuchstaben immer so definiert werden. Oder kann man das machen wie man will. Wenn das immer so ist, wasrum geht das bei den Großbuchstaben denn erst bei 65 aufwärts los? Und warum ist char erg = 32?

Hoffe ihr könnt mir helfen.
 

dieta

Top Contributor
Das liegt an der Kodierung der chars in Java. Man könnte auch schreiben
Code:
if (c >= (int)'A' && c <= (int)'Z') // Großbuchstaben
    grosklein = 'A';
if (c >= (int)'a' && c <= (int)'z')// Kleinbuchstaben
    grosklein = 'a';
 
G

Gast

Gast
achso, aber ansonsten ist meine oben gepostetes halt einfach mal die Regel, wenn man das os machen will, oder halt deines
 
G

Gast

Gast
was sagt den
char erg = 32;
am anfang aus? muss das so sein, weil wenn ich es z.b auf 1 setzt klappt es auch.
 

flasche000

Mitglied
ich dachte ja das dass mit ascii zeichen zusammenhängt???

32==leerzeichen
65-90 Großbuchstaben
97-122 Kleinbuchstaben

was hat das mit java zu tun???
 
G

Gast

Gast
wie was hat das mit java zu tun? das stand so in dem code von meinem kumpel. und klappen tut es ja auch? gehe dann also davon aus, das es die standard belegung ist.
 

flasche000

Mitglied
weil zuerst wer gesagt hat das liegt an java....

klar funktioniert es und ist auch normal aber ich würde nicht sagen das es von java "erfunden" worden ist ;)

ist doch ganz einfach ascii... ???:L
 

dieta

Top Contributor
Ja, klar. Java verwendet den ASCII-Zeichensatz zur Kodierung der chars. Vielleicht wäre es so korrekter:
dieta hat gesagt.:
Das liegt an der ASCII-Kodierung der chars in Java. Man könnte auch schreiben
Code:
if (c >= (int)'A' && c <= (int)'Z') // Großbuchstaben
    grosklein = 'A';
if (c >= (int)'a' && c <= (int)'z')// Kleinbuchstaben
    grosklein = 'a';
Das war aber für seine Zwecke egal.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Feststellen, dass Wert zu groß; Caesar Chiffre Java Basics - Anfänger-Themen 3
T Fehler in Caesar-Chiffre Java Basics - Anfänger-Themen 7
M Caesar Chiffre Java Basics - Anfänger-Themen 3
K Caesar-chiffre Java Basics - Anfänger-Themen 5
D Caesar Chiffre Java Basics - Anfänger-Themen 2
N Erste Schritte JFrame Caesar-Verschlüsselung Java Basics - Anfänger-Themen 23
Y Caesar Verschlüsselung Fehler Java Basics - Anfänger-Themen 4
N Caesar Entschlüsselungsprogramm Java Basics - Anfänger-Themen 10
N Caesar Verschlüsselung Java Basics - Anfänger-Themen 2
J Erste Schritte Caesar - Code Verbesserung Java Basics - Anfänger-Themen 2
K Caesar Verschlüsselng Java Basics - Anfänger-Themen 18
S Caesar Verschlüsselung Start Hilfe Java Basics - Anfänger-Themen 4
H Caesar-Verschlüsselung - Was stimmt nicht? Java Basics - Anfänger-Themen 6
J Caesar Ciphers funktioniert nicht Java Basics - Anfänger-Themen 3
S Caesar-Verschlüsselung Problem/Frage Java Basics - Anfänger-Themen 4
B Textentschlüsselung nach Caesar Java Basics - Anfänger-Themen 3
M Caesar Encrypt+Decrypt Java Basics - Anfänger-Themen 3
F Nachrichtenverschlüsselung nach Caesar: Java Basics - Anfänger-Themen 4
C weniger code für: caesar + reverse? Java Basics - Anfänger-Themen 8
P Caesar Ver- und Entschlüsselung Java Basics - Anfänger-Themen 1
L Caesar-Verschlüsselung programmieren Java Basics - Anfänger-Themen 12
M Entschlüsselungsproblem (Caesar) Java Basics - Anfänger-Themen 3
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben