Hallo,
versuche die folgende Methode zu verstehen, jedoch ist mir nur nicht klar wieso hier ts = ts + c[Integer.parseInt(s.substring(i, i + 2)) - 1] die eins subtrahiert wird.
Aufgabe:
Im Folgenden sollen einige Methoden programmiert werden, die es ermöglichen,
einen einfach verschlüsselten Text zu analysieren und zu dechiffrieren. Der verschlüsselte Text ist als Zahlenfolge in Form eines Strings gegeben. Dabei bilden
immer genau zwei Ziffern ein Zeichen.
Zum Beispiel ist "00172003031400200100" der Text " HALLO AI " mit je einem
Leerzeichen (Code: 00 ) am Anfang bzw. am Ende. Sie können davon ausgehen,
dass ein so verschlüsselter String immer mit einem Leerzeichen beginnt und auch
immer mit einem Leerzeichen endet, ansonsten nur aus Großbuchstaben und Leerzeichen
besteht. ein Großbuchstabe ist eindeutig einem Ziffernpaar zugeordnet.
Implementieren Sie eine Methode, welche den verschlüsselten Text (String s)
mit Hilfe eines Arrays (char[] t) dechiffriert. Das übergebene char-Array
t dient somit als Dechiriertabelle, d. h. String s soll mit char[] t entschlüsselt werden.
willkürliches Beispiel einer übergebenen Dechiffriertabelle:
char[] t = {'T','I','G','A', ... };
'T' ist Code 01 zugeordnet
'I' ist Code 02 zugeordnet
usw.
Ihre Methode soll am Schluss den dechiffrierten Text zurückgeben (Alle Leerzeichen
müssen erhalten bleiben!).
Lösung:
public static String dechiffrieren(String s, char[] c) {
String ts = "";
for (int i = 0; i < s.length() - 2; i += 2) {
if (!(s.substring(i, i + 2).equals("00"))) {
ts = ts + c[Integer.parseInt(s.substring(i, i + 2)) - 1];
} else ts = ts +" ";
}
return ts+" ";
}
Danke euch.
Liebe Grüße
ninos
versuche die folgende Methode zu verstehen, jedoch ist mir nur nicht klar wieso hier ts = ts + c[Integer.parseInt(s.substring(i, i + 2)) - 1] die eins subtrahiert wird.
Aufgabe:
Im Folgenden sollen einige Methoden programmiert werden, die es ermöglichen,
einen einfach verschlüsselten Text zu analysieren und zu dechiffrieren. Der verschlüsselte Text ist als Zahlenfolge in Form eines Strings gegeben. Dabei bilden
immer genau zwei Ziffern ein Zeichen.
Zum Beispiel ist "00172003031400200100" der Text " HALLO AI " mit je einem
Leerzeichen (Code: 00 ) am Anfang bzw. am Ende. Sie können davon ausgehen,
dass ein so verschlüsselter String immer mit einem Leerzeichen beginnt und auch
immer mit einem Leerzeichen endet, ansonsten nur aus Großbuchstaben und Leerzeichen
besteht. ein Großbuchstabe ist eindeutig einem Ziffernpaar zugeordnet.
Implementieren Sie eine Methode, welche den verschlüsselten Text (String s)
mit Hilfe eines Arrays (char[] t) dechiffriert. Das übergebene char-Array
t dient somit als Dechiriertabelle, d. h. String s soll mit char[] t entschlüsselt werden.
willkürliches Beispiel einer übergebenen Dechiffriertabelle:
char[] t = {'T','I','G','A', ... };
'T' ist Code 01 zugeordnet
'I' ist Code 02 zugeordnet
usw.
Ihre Methode soll am Schluss den dechiffrierten Text zurückgeben (Alle Leerzeichen
müssen erhalten bleiben!).
Lösung:
public static String dechiffrieren(String s, char[] c) {
String ts = "";
for (int i = 0; i < s.length() - 2; i += 2) {
if (!(s.substring(i, i + 2).equals("00"))) {
ts = ts + c[Integer.parseInt(s.substring(i, i + 2)) - 1];
} else ts = ts +" ";
}
return ts+" ";
}
Danke euch.
Liebe Grüße
ninos