Zeichenkette zerlegen

Laprogram

Mitglied
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.


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

javampir

Bekanntes Mitglied
Hi,
ja, das geht mit split(). Du nimmst einfach str.split(":"). Da kriegst du dann ein Array von Strings raus.
javampir
 

javampir

Bekanntes Mitglied
Hi
sorry, ich hab deinen quellcode nicht gelesen :) str ist natürlich der string, den du zerlegen willst. den musst du in deinem quellcode natürlich ersetzen.
javampir
 

DJ_MERKEL

Mitglied
Danke für die Antwort.
Wenn ich dies allerdings einfüge bekomme ich ein Problem mit str.
Screenshot by Lightshot

Hi, du scheinst anscheinend auch mit BlueJ zu lernen. Ich habe heute Kapitel 9 des Buches durchgepeitscht (habe aber auch Vorwissen) und wenn du unsicher bist, wie du eine Übung lösen solltest empfehle ich dir die offiziellen Lösungen: (als PDF downloadbar)

http://www.pearson-studium.de/main/main.asp?page=booksites/resources&ISBN=9783868940015&Kapitel={D59C2349-A410-424B-B094-3E55CB7BAEFB}&PSZielgruppe=Student

du musst zwar einen Account anlegen, aber so kannst du immer wunderbar deine Aufgaben kontrollieren ;)


Hier übrigends nochmal die Dokumentation der Klasse String: String (Java Platform SE 7 )
da kann man die Methode split() wunderbar nachlesen, denn da (also die Dokumentation) kommste eh nicht drum rum, wenn du ein guter Programmierer werden willst.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
nonickatall Input/Output Zeichenkette in Array zerlegen Java Basics - Anfänger-Themen 2
M Erste Schritte Zeichenkette zerlegen Java Basics - Anfänger-Themen 5
S Zeichenkette zerlegen? Java Basics - Anfänger-Themen 4
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2
F wie kann ich die Position des letzten Vokals innerhalb einer Zeichenkette ermitteln? Java Basics - Anfänger-Themen 5
O Ich ahbe einen char und diesen soll ich bei .matches prüfen, also ob der char in meiner Zeichenkette vorhanden ist, wie mache ich das? Java Basics - Anfänger-Themen 9
V Zeichenkette programmieren Java Basics - Anfänger-Themen 20
H Methoden Zeichenkette Java Basics - Anfänger-Themen 4
P Zeichenkette Zeichen ausschlißen funktioniert nicht richtig Java Basics - Anfänger-Themen 9
M Zeichenkette konvertieren Java Basics - Anfänger-Themen 1
B Array Zeichenkette umkehren Java Basics - Anfänger-Themen 6
P Zeichenkette mit Binärzahl in Dezimalzahl umrechnen Java Basics - Anfänger-Themen 3
H Wie wandel ich ein Datum in eine Zeichenkette um mit StringBuffer? Java Basics - Anfänger-Themen 3
X Methoden Bei Arrayausgabe wird eine nichtdefinierte Zeichenkette/Anhängsel ausgegeben Java Basics - Anfänger-Themen 7
G Erste Schritte Suche nach Zeichenkette Java Basics - Anfänger-Themen 26
M Methoden String methoden ,Häufigkeit einm wort in der Zeichenkette Java Basics - Anfänger-Themen 14
S "über Parameter soll zeichenkette übergeben werde" Java Basics - Anfänger-Themen 48
P Textdatei auf erste Zeichenkette Prüfen... Java Basics - Anfänger-Themen 10
B zeichenkette in ganze zahlen Java Basics - Anfänger-Themen 2
A UserInput (Eingabe in Form einer Zeichenkette) Java Basics - Anfänger-Themen 11
B Zeichenkette? Java Basics - Anfänger-Themen 7
C Variable Zeichenkette innerhalb einer Schleife ersetzen Java Basics - Anfänger-Themen 4
T Zeichenkette generieren lassen Java Basics - Anfänger-Themen 6
G Zeichenkette in char-Array konvertieren Java Basics - Anfänger-Themen 13
G Zeichenkette suchen in Vector-Klasse Java Basics - Anfänger-Themen 11
D Zeichenkette in String löschen Java Basics - Anfänger-Themen 4
T charAt funktion mit einer string zeichenkette nutzen. WIE? Java Basics - Anfänger-Themen 13
B Bestimmte Zeichenkette aus String herausschneiden? Java Basics - Anfänger-Themen 8
E Zeichenkette Java Basics - Anfänger-Themen 14
G Zeichenkette anhand einer anderen Zeichenkette trennen Java Basics - Anfänger-Themen 6
C Ziffernabfrage in Zeichenkette ! Java Basics - Anfänger-Themen 18
J Zahlen aus Zeichenkette rausparsen? Java Basics - Anfänger-Themen 4
F Problem mit Zeichenkette nur aus Leerzeichen Java Basics - Anfänger-Themen 4
E Zeichenkette einlesen Java Basics - Anfänger-Themen 2
N geschachtelte ausgabe einer zeichenkette Java Basics - Anfänger-Themen 5
G Eingabe einer Zeichenkette ? Java Basics - Anfänger-Themen 2
E String zerlegen aus args Java Basics - Anfänger-Themen 1
I Zerlegen von String Java Basics - Anfänger-Themen 3
J Pfad zerlegen Java Basics - Anfänger-Themen 2
sashady Zahlen rekursiv zerlegen und Ziffern addieren Java Basics - Anfänger-Themen 38
O Best Practice Datei-Pfad zerlegen Java Basics - Anfänger-Themen 4
L String zerlegen & elemente hinzufügen Java Basics - Anfänger-Themen 5
X Wie kann ich Zahlen in einzelne Zifferne zerlegen? Java Basics - Anfänger-Themen 3
B Eine ganze Zahl zerlegen. Java Basics - Anfänger-Themen 4
M String zerlegen anhand anderer String Java Basics - Anfänger-Themen 6
Orkanson Methoden String in Wörter zerlegen und Endungen der Wörter überprüfen. Java Basics - Anfänger-Themen 4
H Path2D zerlegen und Objekt drauf "laufen" lassen Java Basics - Anfänger-Themen 11
Shizmo 2dim Objekt in 1dim zerlegen? Java Basics - Anfänger-Themen 13
Silvascus String zerlegen Java Basics - Anfänger-Themen 6
H String zerlegen Java Basics - Anfänger-Themen 16
B Zahlen zerlegen und verwenden Java Basics - Anfänger-Themen 2
I String gezielt zerlegen Java Basics - Anfänger-Themen 5
D String zerlegen Java Basics - Anfänger-Themen 2
B Best Practice JSON Datei zerlegen Java Basics - Anfänger-Themen 1
H String mit Leerzeichen in Variablen zerlegen Java Basics - Anfänger-Themen 4
F Erste Schritte Pattern zum Zerlegen von selbstdefinierten Dateinamen Java Basics - Anfänger-Themen 7
B String zerlegen Java Basics - Anfänger-Themen 25
T String zerlegen Java Basics - Anfänger-Themen 15
K Bestimmten String zerlegen Java Basics - Anfänger-Themen 12
L Zertifikat Subject DN zerlegen Java Basics - Anfänger-Themen 6
W Zahl/Wort in ein Array zerlegen Java Basics - Anfänger-Themen 6
H String zerlegen in einzelne Buchstaben (char)?? Java Basics - Anfänger-Themen 7
M String an bestimmten Stellen zerlegen Java Basics - Anfänger-Themen 12
M Integer.parseInt String zerlegen Java Basics - Anfänger-Themen 6
H Long (64Bit) in 2 int (32Bit) zerlegen Java Basics - Anfänger-Themen 2
I String ohne Zeichen zerlegen lassen Java Basics - Anfänger-Themen 5
T Set in 2 gleichgroße Teile zerlegen Java Basics - Anfänger-Themen 14
A Zahl zerlegen Java Basics - Anfänger-Themen 3
G String zerlegen? Java Basics - Anfänger-Themen 2
T String zerlegen? Java Basics - Anfänger-Themen 25
J Strings zerlegen Java Basics - Anfänger-Themen 15
G String zerlegen Java Basics - Anfänger-Themen 14
M String zerlegen Java Basics - Anfänger-Themen 6
O String mit split zerlegen Java Basics - Anfänger-Themen 6
J String zerlegen mit mehreren trennzeichen Java Basics - Anfänger-Themen 3
L zahl in einzelzahlen zerlegen Java Basics - Anfänger-Themen 5
G int-Wert in seine byte-Werte zerlegen Java Basics - Anfänger-Themen 3
M Strings zerlegen und Schlüsselwörter finden Java Basics - Anfänger-Themen 7
B ASCII-Datei einlesen und zerlegen Java Basics - Anfänger-Themen 5
Dilandau string intelligent zerlegen Java Basics - Anfänger-Themen 7
G Wie eine Int Zahl in die einzelnen Ziffern zerlegen? Java Basics - Anfänger-Themen 6
G string zerlegen? Java Basics - Anfänger-Themen 3
ven000m Zahl zerlegen Java Basics - Anfänger-Themen 8
frau-u Playlist einlesen, zerlegen und neu sortieren? Java Basics - Anfänger-Themen 3
K Programm in Klassen/Objekte zerlegen - wie? Java Basics - Anfänger-Themen 3
N String zerlegen und auf mehreren Variablen zuweisen Java Basics - Anfänger-Themen 3
B Tastatur eingaben abfragen und dann in Argumente zerlegen..? Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben