NiePrzystosowanyDoZycia
NiePrzystosowanyDoZycia
#naukaprogramowania #java
private stat ic String code(String s) {
char ch, ch2;
int ascii;
String ret = "";
for (int i = 0; i < s.length(); i++) {
ch = s.charAt (i);
ascii = (int ) ch;
//sprawdzenie, czy wychodzi poza zakres
switch (ascii) {
case 88: case 89 : case 90://X, Y, Z
case 120: case 121: case 122://x, y, z
ascii -= 23;
break;
default:
ascii += 3;
break;
}
ch2 = (char) ascii;
ret += ch2;
}
return ret;
}
public stat ic String decode(String s) {
char ch, ch2;
int ascii;
String ret = "";
for (int i = 0; i < s.length(); i++) {
ch = s.charAt (i);
ascii = (int ) ch;
//sprawdzenie, czy wychodz i poza zakres
switch (ascii) {
case 65: case 66 : case 67://A, B, C
case 97: case 98: case 99://a, b, c
ascii += 23;
break;
default:
ascii -= 3;
break;
}
ch2 = (char) ascii;
ret += ch2;
}
return ret;
}
public stat ic void main(String[] args) {
String str = "ABCXYZ";
System.out .println("napis przed kodowaniem: " + str);
String strc = code(str);
System.out .println("napis po kodowaniu: " + str
c);
String strd = decode(strc);
System.out .println("napis po dekodowaniu: " + str_d);
}

Nie ogarniam tego kodu, ktoś pomoże? Wiem, że tworzy się metody szyfrujaca, deszyfrująca i na końcu jest main co wywołuje te metody. Jednak nie ogarniam co się dzieje w tych metodach? Ktoś na chłopski rozum wyjaśni ?
1
  • Najlepsze
  • Wszystkie komentarze
bLnq
bLnq
@NiePrzystosowanyDoZycia: może pomoże "Szyfr cezara" ( ͡° ͜ʖ ͡°)
0
NiePrzystosowanyDoZycia
NiePrzystosowanyDoZycia
@bLnq: no właśnie to działa na zasadzie szyfru cezara, że każdą literke przesuwa np. o 3 ale nie rozumiem kompletnie tego kodu. czemu jest char, char2. case to są jako literki, ale czemu w komentarzu dodano A,B,C i a,b,c. Cięzko to skumać
0
bLnq
bLnq
@NiePrzystosowanyDoZycia: litery małe i litery duże mają różne kody Ascii.
asci 88 - 23 = 65 i w drugą stronę 65 + 23 = 88.
Czyli X Y Z zamienia na A B C a pozostałe przesuwa tylko o 3 znaki w alfabecie.
0