Witam. Zmagam się z pewnym zagadnieniem. Mianowicie muszę odczytać z pliku tekstowego wyrazy po czym zamienić co drugi znak na następny w kodzie ASCII.
Algorytm szyfrowania działa tak jak trzeba, Plik też wczytuje. Natomiast kod nie szyfruje wyrazów odczytanych z pliku i nie zapisuje do pliku. Domyślam się, coś jest nie tak z przeładowaną metodą szyfr. Tylko nie mam pojęcia jak to naprawić. Dziękuje za jakiekolwiek podpowiedzi. Pozdr.
public class Konwersja {
private static final String FILE_NAME = "C://mac//Korepetycje//src//tj.txt";
public static String Szyfr(String plainText) {
String ALPHABET = "abcdefghijklmnopqrstuvwxyz";
int shiftKey = 1;
plainText = plainText.toLowerCase();
String cipherText = "";
for (int i = 0; i < plainText.length(); i ++) {
if (i%2!=0){
int charPosition = ALPHABET.indexOf(plainText.charAt(i));
int keyVal = (shiftKey + charPosition) % 26;
char replaceVal = ALPHABET.charAt(keyVal);
cipherText = cipherText + new String(new char[]{replaceVal});
}
else{
cipherText = cipherText + plainText.charAt(i);}
}
return cipherText;
}
private static String Odwrocenie(String slowo) {
if (slowo == null || slowo.isEmpty()) {
return slowo;
}
String odwrocone = "";
for (int i = slowo.length() - 1; i >= 0; i--) {
odwrocone = new String(odwrocone + slowo.charAt(i));
}
return odwrocone;
}
public static void Szyfr(List<String> slowa) {
slowa = new ArrayList<>();
for (String slowo : slowa) {
slowa.add(Szyfr(slowo));
}
zapis("szyfry.txt",slowa);
}
private static void Odwrocenie(List<String> list) {
list = new ArrayList<>();
for (String slowo : list) {
Odwrocenie(slowo);
}
zapis("szyfry.txt",list);
}
public static void Konwersja(String fileName) {
List<String> lista = null;
try (FileReader fr = new FileReader(FILE_NAME); Scanner sc = new Scanner(fr)
) {
String line;
int linie = 0;
lista = new ArrayList<>();
while (sc.hasNextLine()) {
line = sc.nextLine();
lista.add(line);
Szyfr(lista);
linie ++;
}
System.out.println(lista.toString() + "\n");
} catch (IOException e) {
e.printStackTrace();
}
}
public static void zapis(String fileName, List<String>lista) {
try (FileWriter fw = new FileWriter(fileName, true);
PrintWriter pw = new PrintWriter(fw);) {
for (String s : lista) {
pw.println(s);
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Konwersja("tj.txt");
}
}