Strings vergleichen; Komma ignorieren

denis7788

Bekanntes Mitglied
Hallo!

Ich habe folgendes Problem:
Ich habe ein Chat Programm bestehend aus zwei Fenstern, die neben den Chat-üblichen Elementen (Chatverlauf, Eingabe, Senden-Button) ein Label beinhalten, das die Anzahl gleicher Tags zählen soll.
Ich habe es bisher so gelöst, dass ich die Komplette Eingabe als String mit dem chatverlauf des Chatpartners verglichen habe, bzw. geprüft, ob dieser enthalten ist (mit lastIndexOf() ).

Nun möchte ich aber, das auch einzelne Worte aus einer Eingabe erkannt werden, die durch Kommas separiert sind. Zum Beispiel:
Chatpartner#1: Haus,Baum,Esel
Chatpartner#2: Esel,Auto,Haus

Hier soll dann als Anzahl gleicher Tags 2 heraus kommen.

Hat jemand eine Idee, wie ich das lösen könnte?
Hier der Code (Die angesprochene codestelle befindet sich in den letzten beiden Klassen)

Java:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Chat_Fenster extends JFrame {
	
	JTextArea chat1;
	JTextField input1;
	JButton send1;
	JLabel info1;
	JTextArea chat2;
	JTextField input2;
	JButton send2;
	JLabel info2;
	int indexOfTxt;
	int numberCommonTags;
	String chat_1_txt="";
	String chat_2_txt="";
	
	public static void main(String[]args) {
		
		Chat_Fenster f = new Chat_Fenster();
		f.Chat();
		
		
	}
	
	public void Chat() {
		
		JFrame chat_window1 = new JFrame("Chat#1");
		
		JPanel panel1 = new JPanel();
		JPanel panel11 = new JPanel();
		panel11.setLayout(new BorderLayout());
		
		this.chat1 = new JTextArea(15,20);
		chat1.setLineWrap(true);
		chat1.setEditable(false);
		this.input1 = new JTextField(25);
		this.send1 = new JButton("senden");
		send1.addActionListener(new SendButton1Listener() );
		this.info1 = new JLabel (numberCommonTags+" gemeinsame Tags!"); 
		
		panel11.add(chat1, BorderLayout.CENTER);
		panel11.add(info1, BorderLayout.SOUTH);
		panel1.add(input1);
		panel1.add(send1);
		
		chat_window1.getContentPane().add(BorderLayout.CENTER, panel11);
		chat_window1.getContentPane().add(BorderLayout.SOUTH, panel1);
		chat_window1.setSize(400,400);
		chat_window1.setVisible(true);
		
		
JFrame chat_window2 = new JFrame("Chat#2");
		
		JPanel panel2 = new JPanel();
		JPanel panel22 = new JPanel();
		panel22.setLayout(new BorderLayout());
		
		this.chat2 = new JTextArea(15,20);
		chat2.setLineWrap(true);
		chat2.setEditable(false);
		this.input2 = new JTextField(25);
		this.send2 = new JButton("senden");
		send2.addActionListener(new SendButton2Listener() );
		this.info2 = new JLabel(numberCommonTags+" gemeinsame Tags!");
		
		panel22.add(chat2, BorderLayout.CENTER);
		panel22.add(info2, BorderLayout.SOUTH);
		panel2.add(input2);
		panel2.add(send2);
		
		chat_window2.getContentPane().add(BorderLayout.CENTER, panel22);
		chat_window2.getContentPane().add(BorderLayout.SOUTH, panel2);
		chat_window2.setSize(400,400);
		chat_window2.setVisible(true);
		    
	}
	
	public class SendButton1Listener implements ActionListener {

		public void actionPerformed(ActionEvent arg0) {
			
			String tag = input1.getText();
			indexOfTxt = chat_2_txt.lastIndexOf(tag);
			if(indexOfTxt!=-1) {
				numberCommonTags++;
			} 
			info1.setText(numberCommonTags+" gemeinsame Tags!"+chat_1_txt);
			info2.setText(numberCommonTags+" gemeinsame Tags!"+chat_2_txt);

			
			chat1.setText(chat1.getText()+"#1 "+input1.getText());
			chat2.setText(chat2.getText()+"#1 "+input1.getText());
			chat_1_txt = chat_1_txt + input1.getText();
			input1.setText("");
			
			
			
			
		}
	}
		
		
		public class SendButton2Listener implements ActionListener {
			public void actionPerformed(ActionEvent arg0) {
				
				String tag = input2.getText();
				indexOfTxt = chat_1_txt.lastIndexOf(tag);
				if(indexOfTxt!=-1) {
					numberCommonTags++;
				}
				info1.setText(numberCommonTags+" gemeinsame Tags!");
				info2.setText(numberCommonTags+" gemeinsame Tags!");
				
				chat2.setText(chat2.getText()+"#2 "+input2.getText()+"\n");
				chat1.setText(chat1.getText()+"#2 "+input2.getText()+"\n");
				chat_2_txt = chat_2_txt + input2.getText();
				input2.setText("");
				
				
			}

	}
}
 

Atze

Top Contributor
das lässt sich doch einfach mit einem StringTokenizer oder Scanner lösen. dann kannst du doch tokens vergleichen.
 

denis7788

Bekanntes Mitglied
Ich habe ja nicht immer diese Separierung durch Kommata. Was ist, wenn ich z.B. folgenden Chatverlauf habe:

#1:Hallo!
#2:Hallo!
#1:Haus,Pferd,Auto
#2:Auto,Huhn,Pferd
#1:gestohlen
#2:wer hat das auto gestohlen

soll hier ergeben: 4 gemeinsame tags...
Wenn ich mit Tokenizer arbeite, dann kann ich doch nur entweder durch Komma separieren, oder durch Leerzeichen. so habe ich es zumindest verstanden...

Ansonsten (ist der Ansatz so richtig?):
Ich zerlege meine Eingabe in Tokens. Diese speichere ich dann in String variablen und vergleiche, ob diese schonmal im verlauf vorkamen.
 

tfa

Top Contributor
Du könntest die Token in Sets speichern und dann die Schnittmenge bilden, um die gemeinsamen Wörter zu erhalten. Das wäre am einfachsten.
(Im StringTokenizer kannst du auch mehrere Delimiter angeben)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Meeresgott Best Practice Strings auf Inhalte vergleichen Allgemeine Java-Themen 1
N DNA Strings vergleichen Allgemeine Java-Themen 1
H Strings vergleichen Allgemeine Java-Themen 9
S Strings vergleichen Allgemeine Java-Themen 11
1 zwei Strings vergleichen Allgemeine Java-Themen 16
M Warum Strings mit equals vergleichen... Allgemeine Java-Themen 6
Y Mal wieder vergleichen von Strings.[Leider noch ein Problem] Allgemeine Java-Themen 18
G schnell Strings vergleichen Allgemeine Java-Themen 4
M Strings vergleichen Allgemeine Java-Themen 5
R Namen von Konstanten mit Strings vergleichen Allgemeine Java-Themen 7
W Strings vergleichen Allgemeine Java-Themen 2
H DataOutputStream Ob lässt sich nicht vergleichen mit Strings Allgemeine Java-Themen 5
S Strings vergleichen Allgemeine Java-Themen 12
S Strings vergleichen Allgemeine Java-Themen 5
O regulärer Ausdruck zum durchsuchen eines Strings verwenden Allgemeine Java-Themen 2
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
W JSON parsen eines ,mit JS.stringify erstellten Strings Allgemeine Java-Themen 27
L allgemein Strings händisch in Liste sortieren Allgemeine Java-Themen 47
N MySQL mit Strings Allgemeine Java-Themen 3
T Letztes Zeichen eines Strings enfernen Allgemeine Java-Themen 14
P Strings: equals vs == Allgemeine Java-Themen 47
G Objekte mit Strings Aufrufen Allgemeine Java-Themen 8
W Collections Suche Collection, um Strings mit Indizees versehen Allgemeine Java-Themen 47
V Datentypen Graphikrechner 2/Strings und Variablen in Doubles umwandeln Allgemeine Java-Themen 6
LimDul Mittels Streams aus Strings A B C den String A, B und C machen Allgemeine Java-Themen 12
Q-bert Strings aus der JList in eine Datenbank speichern Allgemeine Java-Themen 1
K Vergleich von Strings von Objekten Allgemeine Java-Themen 4
J Strings int textdokumente speicher Allgemeine Java-Themen 3
KeVoZ_ Nacheinander folgende Strings in Textdokument auf neue Zeile schreiben Allgemeine Java-Themen 6
K Strings sortieren: 2 Kritieren Allgemeine Java-Themen 5
A Vector Strings in Array splitten Allgemeine Java-Themen 6
B Wie vergleiche ich Strings in einer Liste? Allgemeine Java-Themen 5
T Strings über Bluetooth zwischen PC,µc oder Samrtphone senden und empfangen Allgemeine Java-Themen 0
N Methoden Methoden einer Klasse auf Grundlage eines Strings aufrufen Allgemeine Java-Themen 6
K Bestimmten Bereich eines Strings lesen Allgemeine Java-Themen 6
H RegularExpression zwischen zwei Strings Allgemeine Java-Themen 2
Neumi5694 Operatoren regEx für das Erstellen eines Strings verwenden Allgemeine Java-Themen 3
O Mustererkennung in Strings Allgemeine Java-Themen 4
Y String-Collection: längste gemeinsame Strings / Prefixe Allgemeine Java-Themen 3
F Problem mit Strings Allgemeine Java-Themen 8
D Strings chemisch splitten Allgemeine Java-Themen 3
K Wörter in Strings zählen Allgemeine Java-Themen 7
L Strings nach sortiertem String zurück ordnen Allgemeine Java-Themen 0
L Strings nach gleichem Muster ordnen Allgemeine Java-Themen 4
L Fragen für Facharbeit: Analyse von Strings in Java Allgemeine Java-Themen 4
K Java Operatoren mit Strings darstellen Allgemeine Java-Themen 8
G Strings erzeugen Allgemeine Java-Themen 20
B HTML Tags in Strings umwandeln Allgemeine Java-Themen 4
N Input/Output Vergleich von identischen Strings schlägt fehl Allgemeine Java-Themen 5
U Große Liste von Strings mit indiziertem Zugriff Allgemeine Java-Themen 31
A ,,Textformatierungsbefehle" für strings deaktivieren Allgemeine Java-Themen 8
C Strings in Excel einlesen! Allgemeine Java-Themen 2
S Strings gehen "kaputt" wenn ich in CVS ein und wieder auschecke. Allgemeine Java-Themen 2
X Datentypen Prozentualer Abgleich zwischen 2 Strings (Pattern?) Allgemeine Java-Themen 3
R MD5-Hash eines Strings bestimmen Allgemeine Java-Themen 2
C Strings und JSON Objekte so klein wie möglich im Speicher ablegen Allgemeine Java-Themen 5
J String zerlegen in einzelne Strings Allgemeine Java-Themen 7
F Konstanten mir Strings "verknuepfen" Allgemeine Java-Themen 10
L Object Instanz anhand eines Strings Allgemeine Java-Themen 10
S vector & strings Allgemeine Java-Themen 26
N Strings mit null wiedergabe Splitten Allgemeine Java-Themen 4
K Strings sortieren (knifflig) Allgemeine Java-Themen 7
P Codierung der strings umändern Allgemeine Java-Themen 10
N Zahlen in Strings einer ArrayList sortieren Allgemeine Java-Themen 14
F 2 Strings zusammenfügen Allgemeine Java-Themen 2
D Strings von HTML befreien Allgemeine Java-Themen 17
S Strings zu Color-Instanzen parsen? Allgemeine Java-Themen 7
C Strings zwischen 2 Zeichen auslesen Allgemeine Java-Themen 7
T Explizite Typkonversation mit Strings Allgemeine Java-Themen 9
R Locale spezifische DateFormat Strings? Allgemeine Java-Themen 3
M Wie kann ich alle System.out Strings in ein log window umleiten? Allgemeine Java-Themen 6
R Java function die Strings escaped, sodass ich sie in Javascript verwenden kann? Allgemeine Java-Themen 4
ruutaiokwu objektreferenz eines strings... Allgemeine Java-Themen 9
data89 [Kurze Frage] Ähnlichkeit zweier Strings ermitteln Allgemeine Java-Themen 19
S bestimmte Strings spliten! Allgemeine Java-Themen 7
Daniel_L Suche nach ganzen Wörtern (wholeword) in Strings? Allgemeine Java-Themen 4
A Strings joinen, Standard-Library? Allgemeine Java-Themen 9
data89 Die Größe eines Strings in Byte berechnen? Allgemeine Java-Themen 12
A Auslesen von Strings aus einer xls-Datei Allgemeine Java-Themen 16
G Spezialfrage zu Strings Allgemeine Java-Themen 11
C Textteile aus Strings extrahieren? Allgemeine Java-Themen 6
J Teile eines Strings ersetzen Allgemeine Java-Themen 2
J Name eines Strings durch einen String festlegbar? Allgemeine Java-Themen 2
G Strings zerlegen und substrings auslesen Allgemeine Java-Themen 2
Z Letztes zeichen eines strings löschen Allgemeine Java-Themen 3
V Speicherplatz eines Strings? Allgemeine Java-Themen 12
H MIDlets und Strings Allgemeine Java-Themen 2
C Pixelanzahl eines Strings ermitteln Allgemeine Java-Themen 12
T Strings darf nur Ziffern, +/- haben Allgemeine Java-Themen 9
A Fehler beim Ersetzen eines Strings Allgemeine Java-Themen 3
G Strings die Zahlen enthalten sinnvoll sortieren (A2 < A10 Allgemeine Java-Themen 4
G byte[] mit Strings füllen Allgemeine Java-Themen 2
H strings in datei verschlüsseln , auslesen mit klartext aber! Allgemeine Java-Themen 2
F Strings in JList ausrichten/links/rechts/mittig Allgemeine Java-Themen 10
M String#equals(), Probleme mit großen Strings? Allgemeine Java-Themen 4
H ein Teil des Strings rausfiltern Allgemeine Java-Themen 8
E Viele if Abfragen auf viele Strings --> Alternative zu if Allgemeine Java-Themen 8
C Strings zu groß um damit zu arbeiten Allgemeine Java-Themen 31
V Lib für Strings suchen und ersetzen (erweitert) Allgemeine Java-Themen 3
P Schnelles Auslesen von Strings für Syntaxhighlighting? Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben