Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Mein Problem ist folgendes:
Ich möchte eine Caesar-Verschiebung in einem kleinen Java-Programm umsetzen (Aus 'a' wird 'b', aus 'b' wird 'c' ....)
An der entscheidenden Stelle versagen allerdings meine Kentnnisse...
Wie erhöhe ich den Wert einer Variable vom Typ char um eine Stelle?
Mit..
Code:
char test01 = 97;
System.out.print(test01); // Ausgabe: a
lässt sich zwar ein Wert vom ASCII-Code einer Char-Variable zuweisen, allerdings funktioniert folgendes nicht..
Code:
char test02 = 'a' + 1;
Hat jemand eine Idee, wie man den Wert einer Char-Variable um eine Stelle erhöhen könnte?
Ich habe daran gedacht, trotzdem danke für den Hinweis!
Bin gerade dabei nicht nur die Verschiebung des Alphabets bestimmen zu können, sondern auch Code-Wörter benutzen zu können.
Z.B.:
"WELT"
->WELTABCDFGHIJKMNOPQRSUVWXYZ
da ich beim "Rumspielen" mit der o. g. Verschlüsselung letzte Woche auch was komische gefunde habe schließe ich mich hier einfach mal an mit meiner Frage.
Und zwar hab ich mir char[] erzeugt und wollte diese dann komplett einfach um einen bestimmten Wert "verfälschen". Dazu hat meine Methode alles mögliche übergeben bekommen und ich wollte einfach erstmal folgendes machen:
Code:
// Das char[] ist natürlich line :-)
for (int i = 0; i < line.length; i++) {
char a = line[i];
// Die folgende Zeile geht NICHT und eclipse bringt mir einen Type mismatch wg. convert
// from int to char
line[i] = a + 1;
// Zum Testen warum die obere Zeile nicht geht habe ich folgedes propiert und das funktioniert
char b = 'a' + 1;
}
Kann mir von euch einer sagen warum die eine Zeile geht und die andere nicht?
// Das char[] ist natürlich line :-)
for (int i = 0; i < line.length; i++) {
char a = line[i];
// Die folgende Zeile geht NICHT und eclipse bringt mir einen Type mismatch wg. convert
// from int to char
line[i] = a + 1;
Dass diese Zeile so nicht funktioniert, liegt an der Addition von der Char-Variable und der 1. Um die beiden Werte zu addieren, werden sie in Integer-Variablen umgewandelt. Das Ergebnis, das immernoch int ist, wird an die Char-Variable line übergeben, was natürlich nicht funktioniert.
Eine Lösung wäre:
Code:
line[i] = (char) (a + 1);
mit (char) davor "zwingst" du den Wert der Addition in deine Char-Variable.
Diese Zeile funktioniert...
Code:
// Zum Testen warum die obere Zeile nicht geht habe ich folgedes propiert und das funktioniert
char b = 'a' + 1;
}
weil hier keine Char-Variable, sondern der Wert 'a' (bzw. 97) mit 1 addiert wird.
Ich hoffe, ich konnte dir bei deinem Problem helfen.
Dass diese Zeile so nicht funktioniert, liegt an der Addition von der Char-Variable und der 1. Um die beiden Werte zu addieren, werden sie in Integer-Variablen umgewandelt. Das Ergebnis, das immernoch int ist, wird an die Char-Variable line übergeben, was natürlich nicht funktioniert.
Eine Lösung wäre:
Code:
line[i] = (char) (a + 1);
mit (char) davor "zwingst" du den Wert der Addition in deine Char-Variable.