słownik pol-ang (kolekcje, HashMap)

14 04 2008

import 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);
}
}

}


Operacje

Informacja

Dodaj komentarz

Możesz użyć tych tagów : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>