słownik pol-ang (kolekcje, HashMap)
14 04 2008import java.util.*;
import java.io.*;
public class AngPol {
public static void main(String args[]) {
Scanner abc = new Scanner(System.in).useDelimiter(”\n”);
Slownik dic = new Slownik();
String input = “”;
while (true) {
if (abc.hasNext()) {
input = abc.next();
}
if (input.matches(”^([^!]+)”)) {
System.out.println(dic.get(input.split(” “)[0]));
}
else if (input.matches(”^!remove\\s(.+)?”)) {
dic.remove(input.split(” “)[1]);
}
else if (input.matches(”^!add\\s(.+)?\\s(.+)?”)) {
dic.add(input.split(” “)[1], input.split(” “)[2]);
}
else if (input.matches(”^!exit”)) {
dic.exit();
break;
}
}
}
}
class Slownik {
private Map<String, String> slowniczek = new HashMap<String, String>();
public void add(String pol, String eng) {
slowniczek.put(pol, eng);
}
public boolean remove(String slowko) {
if (slowniczek.containsKey(slowko)) {
slowniczek.remove(slowko);
return true;
}
else if (slowniczek.containsValue(slowko)) {
for ( String xyz : slowniczek.keySet() ) {
if (slowniczek.get(xyz).equals(slowko)) {
slowniczek.remove(xyz);
return true;
}
}
}
return false;
}
public String get(String slowko) {
if (slowniczek.containsKey(slowko)) {
return slowniczek.get(slowko);
}
else if (slowniczek.containsValue(slowko)) {
for ( String xyz : slowniczek.keySet() ) {
if (slowniczek.get(xyz).equals(slowko)) {
return xyz+”\n”;
}
}
}
return “Nie ma takiego słówka w bazie\n”;
}
//potrzebne do exit() i nie tylko …:
FileInputStream plik;
BufferedReader input;
BufferedWriter output;
public void exit() {
try {
input.close();
output = new BufferedWriter(new FileWriter(”ang-pol.dic”));
for ( String xyz : slowniczek.keySet() ) {
output.write(xyz + ” ” + slowniczek.get(xyz) + “\n”);
}
output.close();
}
catch (IOException e) {
System.out.println(”Coś nie tak z zapisem lub odczytem!! Pokombinuj jeszcze raz…\n”);
System.exit(0);
}
}
public Slownik() {
try {
plik = new FileInputStream(”ang-pol.dic”);
input = new BufferedReader(new InputStreamReader(new DataInputStream(plik)));
String linia;
while ((linia = input.readLine()) != null) {
String slowo[] = linia.split(” “);
if (slowo.length == 2) {
slowniczek.put(slowo[0], slowo[1]);
}
}
}
catch (IOException e) {
System.out.println(”Coś nie tak z zapisem lub odczytem!! Pokombinuj jeszcze raz…\n”);
System.exit(0);
}
}
}