Java – Érettségi feladatok – 2005. október (Vigenère)
package e2005oktober;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class E2005oktober {
/* NetBeans: UTF-8 karakterkódolás az Output ablakban:
https://juhaasztamaas.hu/inf/informatika-programozas/java/netbeans-alapok/ */
public static void main(String[] args) throws IOException{
// 1. feladat
System.out.println("1. feladat");
Scanner sc = new Scanner(System.in);
System.out.println("Kérem, adjon meg egy max. 255 karakter hosszú szöveget!");
String eredeti = sc.nextLine();
System.out.println("------------------");
System.out.println();
// 2. feladat
System.out.println("2. feladat");
eredeti = eredeti.toUpperCase();
// RegEx-szel nagyon egyszerűen lehet a problémát kezelni! :-)
String nyiltSzoveg = eredeti.replaceAll("[^A-Z]", "");
System.out.println("Az átalakítás megtörtént. :-)");
System.out.println("------------------");
System.out.println();
// 3. feladat
System.out.println("3. feladat");
System.out.println(nyiltSzoveg);
System.out.println("------------------");
System.out.println();
// 4. feladat
System.out.println("4. feladat");
System.out.println("Kérek egy 5 karakteres, nem üres kulcsszót!");
String kulcsszo = sc.nextLine().toUpperCase();
System.out.println("Átalakítás után a kulcsszó: " + kulcsszo);
System.out.println("------------------");
System.out.println();
// 5. feladat
System.out.println("5. feladat");
String kulcsSzoveg = "";
for (int i = 0; i < nyiltSzoveg.length() / kulcsszo.length(); i++) {
kulcsSzoveg += kulcsszo;
}
for (int i = 0; i < nyiltSzoveg.length() % kulcsszo.length(); i++) {
kulcsSzoveg += kulcsszo.charAt(i);
}
System.out.println("A kulcsszöveg: " + kulcsSzoveg);
System.out.println("------------------");
System.out.println();
// 6. feladat
System.out.println("6. feladat");
// scF- scannerFile
Scanner scF = new Scanner(new FileReader("Vtabla.dat"));
String sor="";
char[][] tabla = new char[26][26];
for (int i = 0; i < 26; i++) {
sor = scF.nextLine();
for (int j = 0; j < 26; j++) {
tabla[i][j] = sor.charAt(j);
}
}
// // A tabla létrejöttének ellenőrzése
// for (int i = 0; i < 26; i++) {
// for (int j = 0; j < 26; j++) {
// System.out.print(tabla[i][j]);
// }
// System.out.println();
// }
String kodoltSzoveg="";
for (int i = 0; i < nyiltSzoveg.length(); i++) {
int x = (int)nyiltSzoveg.charAt(i);
int y = (int)kulcsSzoveg.charAt(i);
kodoltSzoveg += tabla[x-65][y-65];
}
System.out.println(kodoltSzoveg);
System.out.println("------------------");
System.out.println();
// 7. feladat
System.out.println("7. feladat");
FileWriter fw = new FileWriter("kodolt.dat");
PrintWriter pw = new PrintWriter(fw);
pw.print(kodoltSzoveg);
pw.close();fw.close();sc.close();
System.out.println("A kódolt szöveg kiírva a kodolt.dat fájlba.");
}
}