Tajne kodowanie

0

Witam, mam taki mały problem, Profesor od programowania zadał nam napisanie w Javie programu który będzie wykonywał tak zwane Tajne kodowanie nawet nie wiem czy to jest fachowa nazwa, więc w skrócie wygląda to tak (koduję jakiś tam rząd znaków "ASD" w pierwszym kroku koduje go w ASCII, powstaje "65, 83 ,68".Po czym do otrzymanych wartości dodaje długość ciągu i miejsce (wartosć) jego występowania, powstaje "69, 88, 73", na koniec przekładam to z powrotem wg tabeli ASCII, mamy "E, X, I"). Więc właśnie coś takiego mam napisać w Javie, program ma tylko kodować, nie musi dekodować. I tu moja prośba cz mógłby ktoś tak baaaardzo łopatologicznie pomóc mi w napisaniu tego czegoś, niestety moja wiedza z programowanie lekko kuleje przez co nie jestem w stanie sam tego ugryźć.

Wszystko fajnie Panowie, ale jak zacząć taki program itd, ja jestem naprawdę dno w tym temacie...

0

W Javie to jest dziecinnie proste...
char[] chars = text.toCharArray();
Potem w pętli for do każdego elementu tablicy dodawać długość tablicy chars
chars[i] = (char) (chars[i] + chars.length);
dekodowanie to oczywiście to samo, tylko z - zamiast +

0

@keraj, drobna poprawka

chars[i] = (char) (chars[i] + chars.length+i+1);

@autor, co ma się dziać gdy ciąg jest długi (ma np. 400 znaków)? "A...." => 65,... => 466, ....

0

A załóżmy, że chce znaki ASCII do maks 255...

kodowanie:chars[i] = (char) ((chars[i] + chars.length +i+1)%255);
dekodowanie:

int c = (chars[i] - chars.length -i-1);
chars[i] = (char) (c>0? c : c%-255+255);

dobrze myślę?

1 użytkowników online, w tym zalogowanych: 0, gości: 1