Hey Leute,
ich bin noch ein Anfänger und steh vor einer Übung bei Java lernen mit BlueJ bei der ich nicht weiter komme.
Die Übung lautet "Wie können Sie eine Zeichenkette zerlegen, in der die Wörter beispielsweise durch einen Doppelpunkt voneinander getrennt sind?"
Muss ich dies mit Split() machen? wenn ja wie?
Danke schon mal im voraus.
ich bin noch ein Anfänger und steh vor einer Übung bei Java lernen mit BlueJ bei der ich nicht weiter komme.
Die Übung lautet "Wie können Sie eine Zeichenkette zerlegen, in der die Wörter beispielsweise durch einen Doppelpunkt voneinander getrennt sind?"
Muss ich dies mit Split() machen? wenn ja wie?
Danke schon mal im voraus.
Java:
import java.util.*;
public class Beantworter
{
private Random zufall;
private ArrayList<String> antworten;
private HashMap<String,String> antwortMap;
private HashMap<String, String> synonymMap;
public Beantworter()
{
zufall = new Random();
antworten = new ArrayList<String>();
antwortenfuellen();
antwortMap = new HashMap<String,String>();
antwortMapBefuellen();
synonymMap = new HashMap <String, String>();
synonymMapBefuellen();
}
// Verbindet eingegebene Woerter mit Antworten.
private void antwortMapBefuellen()
{
antwortMap.put("absturz",
"Tja, auf unserem System kommt es nie zu einem Absturz. Das muss \n" +
"an Ihrem System liegen. Welche Konfiguration haben Sie?");
antwortMap.put("abstuerzt",
"Tja, auf unserem System kommt es nie zu einem Absturz. Das muss \n" +
"an Ihrem System liegen. Welche Konfiguration haben Sie?");
antwortMap.put("stuerzt",
"Tja, auf unserem System kommt es nie zu einem Absturz. Das muss \n" +
"an Ihrem System liegen. Welche Konfiguration haben Sie?");
antwortMap.put("langsam",
"Ich vermute, dass das mit Ihrer Hardware zu tun hat. Ein Upgrade\n" +
"fuer Ihren Prozessor sollte diese Probleme loesen. Haben Sie ein\n" +
"Problem mit unserer Software?");
antwortMap.put("performance",
"Bei all unseren Tests war die Performance angemessen. Haben Sie\n" +
"andere Prozesse, die im Hintergrund laufen?");
antwortMap.put("fehler",
"Wissen Sie, jede Software hat Fehler. Aber unsere Entwickler arbeiten\n" +
"sehr hart daran, diese Fehler zu beheben. Koennen Sie das Problem ein\n" +
"wenig genauer beschreiben?");
antwortMap.put("fehlerhaft",
"Wissen Sie, jede Software hat Fehler. Aber unsere Entwickler arbeiten\n" +
"sehr hart daran, diese Fehler zu beheben. Können Sie das Problem ein\n" + "wenig genauer beschreiben?");
antwortMap.put("windows",
"Das ist ein bekanntes Problem, dass im Betriebssystem von Microsoft begruendet\n" +
"ist. Bitte leiten Sie es an Microsoft weiter. Da koennen wir leider nichts \n" +
"dran machen.");
antwortMap.put("macintosh",
"Das ist ein bekanntes Problem, das im Betriebssystem des Mac begruendet\n" +
"ist. Bitte leiten Sie es an Apple weiter. Da koennen wir leider nichts \n" +
"dran machen.");
antwortMap.put("teuer",
"Unsere Preise sind absolute Marktpreise. Haben Sie sich mal umgesehen\n" +
"und wirklich unser Leistungsspektrum verglichen?");
antwortMap.put("installation",
"Die installation ist wirklich sehr einfach. Wir haben haufenweise\n" +
"Wizards, die die Arbeit fuer sie erledigen. Haben Sie die Installations-\n" +
"anleitung gelesen?");
antwortMap.put("speicher",
"Wenn sie die Systemanforderungen gruendlich lesen, werden Sie feststellen,\n" +
"dass die Speicheranforderung 1,5 Gigabyte betraegt. Sie sollten Ihren\n" +
"Hauptspeicher unbedingt aufruesten. Koennen wir sonst noch etwas fuer Sie tun?");
antwortMap.put("linux",
"Wir nehmen Linux sehr ernst. Aber es gibt da einige Probleme.\n" +
"Die meisten haengen mit der inkompatiblen glibc-Version zusammen. Koennen \n" +
"Sie das Problem etwas praeziser beschreiben?");
antwortMap.put("bluej",
"Ahhh, BlueJ, ja. Wir haben schon vor laengerer Zeit versucht, diese Leute \n" +
"aufzukaufen, aber sie wollen nicht verkaufen... Sturkoepfe sind das. \n" +
"Ich fuerchte, da koennen wir nichts dran aendern.");
antwortMap.put("dich",
"selber");
}
public String generiereAntwort(HashSet<?> woerter)
{
Iterator<?> it = woerter.iterator();
while(it.hasNext()) {
String wort = (String) it.next();
String antwort = (String) antwortMap.get(wort);
if (antwort !=null) {
return antwort;
}
else {
String synonym = synonymMap.get(wort); //Hier wird nachgeguckt ob das eingegebene Wort ein Synonym ist.
if(synonym != null) {
return antwortMap.get(synonym);
}
}
}
// Wenn wir hierher gelangen, wurde keines der Eingabewoerter erkannt.
// In diesem Fall waehlen wir eine unserer Standardantworten ( die
// wir geben, wenn uns nichts Besseres mehr einfaellt).
return standardantwortAuswaehlen();
}
public String standardantwortAuswaehlen()
{
int i = zufall.nextInt(antworten.size());
String antwort = (String) antworten.get(i);
return antwort;
}
//SynonymMapBefuellen bildet mehrere Wšrter auf dieselben Antworten ab. D.h. dass bei Wort X und Y dieselben antworten
//ausgegeben werden.
public void synonymMapBefuellen()
{
synonymMap.put("nicht schnell","langsam");
synonymMap.put("error","fehler");
synonymMap.put("falsch","fehler");
synonymMap.put("kostet viel","teuer");
}
// Zufaellige Antworten: Falls er keine der eingegebenen Wšrter mit einer Antwort verbinden kann.
public void antwortenfuellen()
{
antworten.add("Ja");
antworten.add("Nein");
antworten.add("Vielleicht");
}
}