Skip to content

Instantly share code, notes, and snippets.

@Viacheslav77
Last active March 2, 2016 01:49
Show Gist options
  • Select an option

  • Save Viacheslav77/788f377fe663dba59a3c to your computer and use it in GitHub Desktop.

Select an option

Save Viacheslav77/788f377fe663dba59a3c to your computer and use it in GitHub Desktop.
1. Написать программу переводчик, которая будет переводить текст, написанный на одном языке, на другой язык согласно заранее составленному словарю. 2. Сделать ф-ю ручного наполнения словаря и возможность его сохранения на диск.
package Dictionary;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.HashMap;
import java.util.Map;
public class Dictionary {
private Map <String,String> Dic;
private String path;
public Dictionary (){
Dic = new HashMap <String,String> ();
}
public void getDic(String path) throws FileNotFoundException, ClassNotFoundException, IOException{
this.path=path;
File f = new File (path);
if (f.isFile() && f.exists())
Dic = getDes (f);
else {
f.createNewFile();
Dic = loadStandart();
}
}
private Map<String, String> loadStandart() {
String [] s1 = {"Hello", "!", "world", "My", "name"};
String [] s2 = {"Привет","!", "мир", "моё", "имя"};
Map <String,String> tmp = new HashMap <String,String> ();
for(int i=0; i < s1.length; i++)
tmp.put(s1[i], s2[i]);
return tmp;
}
private HashMap<String, String> getDes(File f) throws FileNotFoundException, IOException, ClassNotFoundException {
HashMap <String, String> obj = null;
try ( ObjectInputStream inSt = new ObjectInputStream(new FileInputStream (f))){
obj = (HashMap<String, String>)inSt.readObject();
}
System.out.println(obj+" has been deserialized from "+ f +"\n");
return obj;
}
public void setDic () throws FileNotFoundException, IOException {
ObjectOutputStream obout = new ObjectOutputStream (new FileOutputStream(path));
obout.writeObject(Dic);
System.out.println(Dic +" has been serialized to "+ path+"\n");
obout.flush();
obout.close();
}
public void setWord (String w1, String w2){
Dic.put(w1, w2);
}
public String getW2 (String w1){
return Dic.get(w1);
}
public String getW1 (String w2){
return Dic.get(w2);
}
public void getTranslation (String text ){
System.out.println ("Фраза для перевода - " + text + "\n переводим ...");
String [] tmp = text.split(" ");
StringBuilder sb = new StringBuilder ();
for(String s: tmp)
sb.append(Dic.get(s)+" ");
System.out.println("Перевод : " + sb);
}
}
package Dictionary;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class MainMenu {
private static Dictionary obj;
private static BufferedReader in;
public static void Menu(Dictionary obj1) throws IOException {
obj=obj1;
System.out.println("---------------------------------------------------");
System.out.println("Переводчик");
System.out.println("---------------------------------------------------");
in = new BufferedReader(new InputStreamReader(System.in));
try {
while (true) {
helpMenu();
System.out.print("Ваш выбор: ");
String line = in.readLine();
if (line.equals("4")) {
System.out.println("---------------------------------------------------");
in.close();
return;
}
selectMenu(line );
}
} finally {
in.close();
}
}
public static void selectMenu(String line ) throws IOException {
switch (line) {
case "1":
System.out.println("---------------------------------------------------");
System.out.print("Введите слово: ");
String w1 = in.readLine();
System.out.print("Введите перевод: ");
String w2 = in.readLine();
obj.setWord(w1, w2);
System.out.println("Слова внесены \n---------------------------------------------------");
break;
case "2":
System.out.println("---------------------------------------------------");
System.out.println("Введите фразу для перевода");
System.out.println("---------------------------------------------------");
String text = in.readLine();
obj.getTranslation(text);
System.out.println("---------------------------------------------------");
break;
case "3":
System.out.println("---------------------------------------------------");
System.out.println("Использовать готовую фразу для перевода ");
System.out.println("---------------------------------------------------");
text = "Hello world !";
obj.getTranslation(text);
System.out.println("---------------------------------------------------");
break;
}
}
public static void helpMenu() {
StringBuilder sb = new StringBuilder();
sb.append("Если хотите ввести новые слова введите 1\n");
sb.append("Если хотите ввести фразу для перевода введите 2\n");
sb.append("Использовать готовую фразу для перевода введите 3\n");
sb.append("Выход - 4\n");
System.out.println(sb.toString());
}
}
package Dictionary;
import java.io.FileNotFoundException;
import java.io.IOException;
/*1. Написать программу переводчик, которая будет переводить текст, написанный на одном языке, на другой язык согласно заранее
составленному словарю.
2. Сделать ф-ю ручного наполнения словаря и возможность его сохранения на диск.*/
public class MyClass {
public static void main(String[] args) throws FileNotFoundException, ClassNotFoundException, IOException {
Dictionary d = new Dictionary ();
d.getDic("d:\\1\\dictionari.txt");
MainMenu.Menu(d);
d.setDic();
}
}
{!=!, world=мир, Hello=Привет, name=имя, My=моё, girl=девочка, first=первый} has been deserialized from d:\1\dictionari.txt
---------------------------------------------------
Переводчик
---------------------------------------------------
Если хотите ввести новые слова введите 1
Если хотите ввести фразу для перевода введите 2
Использовать готовую фразу для перевода введите 3
Выход - 4
Ваш выбор: 1
1
---------------------------------------------------
Введите слово: second
Введите перевод: второй
Слова внесены
---------------------------------------------------
Если хотите ввести новые слова введите 1
Если хотите ввести фразу для перевода введите 2
Использовать готовую фразу для перевода введите 3
Выход - 4
Ваш выбор: 2
2
---------------------------------------------------
Введите фразу для перевода
---------------------------------------------------
first second
Фраза для перевода - first second
переводим ...
Перевод : первый второй
---------------------------------------------------
Если хотите ввести новые слова введите 1
Если хотите ввести фразу для перевода введите 2
Использовать готовую фразу для перевода введите 3
Выход - 4
Ваш выбор: 3
3
---------------------------------------------------
Использовать готовую фразу для перевода
---------------------------------------------------
Фраза для перевода - Hello world !
переводим ...
Перевод : Привет мир !
---------------------------------------------------
Если хотите ввести новые слова введите 1
Если хотите ввести фразу для перевода введите 2
Использовать готовую фразу для перевода введите 3
Выход - 4
Ваш выбор: 4
4 ---------------------------------------------------
{!=!, world=мир, Hello=Привет, name=имя, My=моё, girl=девочка, first=первый, second=второй} has been serialized to d:\1\dictionari.txt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment