Zdravím vás
zasekl jsem se u řešení jednoho prográmku v JAVĚ.
Jedná se o toto:
Zapište kód programu v jazyce JAVA pro šifrování a dešifrování textových souborů.
Šifrování by mělo probíhat tak, že každé slovo ze souboru se zapíše v obráceném tvaru
a k tomu se obalí z obou stran písmenem ze zadaného klíče.
Například pokud bude v souboru věta: ,,venku je hezky" a klic bude ,,heslo"
tak výsledek by měl vypadat takto" hukneve sejl oykzehh.
Část kódu už mám a to tu která bere jednotlivá slova, převrací je a uzavírá soubor.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.StringTokenizer;
public class Ctecka {
public String soubor = null;
public String klic;
public static String vysledek ="";
FileWriter fw;
public Ctecka(String file) {
this.soubor = file;
}
public String getObsahSouboru() throws IOException { //nacita obsah textoveho souboru
String line = null;
StringBuilder builder = new StringBuilder();
File file = new File(this.soubor);
BufferedReader input = new BufferedReader(new FileReader(file));
while ((line = input.readLine()) != null) { // do string builderu pripojim radku
builder.append(line); //po dojiti konce radky pripojim oddelovac
builder.append(System.getProperty("line.separator"));
}
input.close();
return builder.toString();
}
public static String sifruj(String s){
StringTokenizer st = new StringTokenizer(s, " ,.:!?", true); // rozdeluje slova podle danych znaku
while (st.hasMoreTokens()){ //dokud jsou dalsi slova
vysledek += (new StringBuilder(st.nextToken())).reverse(); //do stringu uklada a spojuje prevracena slova
}
return vysledek;
} public void uzavriSoubor() throws IOException{
File file = new File(this.soubor);
BufferedWriter output = new BufferedWriter(new FileWriter(file));
output.write(vysledek);
output.close();
Problém mám s tím jak dopsat obalování tím heslem a také aby se heslo cyklycky opakovalo.
Přemýšlel jsem o tom že heslo bych mohl dát do pole znaků a postupně z něj načítat (v metodě sifrování), ale nejsem si jistý jak to spravně zapsat.
Předem moc díky za jakoukoliv pomoc a tipy.