ArrayList ObjektElement behalten und neues hinzufügen

Also die Strings haben immer ein ":" aber die anweisung "(ängstlich)" kommt nur manchmal vor

zunächst möchte ich es aber erstmal nur hinkriegen dass er folgenden String filtert:

"Tim:Ich habe Angst"

in "Tim" und "Ich habe Angst"

Ich habe leider bis jetzt noch nie sowas angewandt, deswegen bitte ich um ein Beispiel.
 
Hat super geklappt jetzt fehlt mir das aber irgendwie mit der regieanweisung, das bekomme ich net hin.

also mit der methode von dir werden die an der stelle 0 und 1 gespeichert, aber wie filter ich die regieanweisung heraus?
 
Ja, da wird es etwas komplizierter. Wie gesagt, kann man recht bequem mit RegEx lösen. Ich habs jetzt mal so gemacht:
Java:
package de.tutorials.forum.hilfe.xerxes20.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegExSample {
	public static void main(String[] args) {
		String str = "Tim(ängstlich): Ich habe Angst";
		String str2 = "Tim: Boah macht das Spaß!";
		Pattern p = Pattern.compile("([a-zA-Z0-9äÄöÖüÜß]+)(\\(([a-zA-Z0-9äÄöÖüÜß]+)\\))?: (.+)");
		Matcher m = p.matcher(str);

		while(m.find()) {
			System.out.println("===============================");
			System.out.println(str);
			System.out.println("===============================");
			System.out.println(m.group(0));
			System.out.println(m.group(1));
			System.out.println(m.group(2));
			System.out.println(m.group(3));
			System.out.println(m.group(4));
		}
		
		m = p.matcher(str2);
		while(m.find()) {
			System.out.println("===============================");
			System.out.println(str2);
			System.out.println("===============================");
			System.out.println(m.group(0));
			System.out.println(m.group(1));
			System.out.println(m.group(2));
			System.out.println(m.group(3));
			System.out.println(m.group(4));
		}
	}
}
Ausgabe:
===============================
Tim(ängstlich): Ich habe Angst
===============================
Tim(ängstlich): Ich habe Angst
Tim
(ängstlich)
ängstlich
Ich habe Angst
===============================
Tim: Boah macht das Spaß!
===============================
Tim: Boah macht das Spaß!
Tim
null
null
Boah macht das Spaß!
Zuerst hab ich den eigentlichen String ausgegeben und dannach den Fund und die einzelnen Gruppen (eine Gruppe wird von einem Klammerpaar umschlossen). Der Index 0 ist dabei der gesamte Fund, man kann dazu die group-Methode auch ohne Parameter aufrufen. Die Indezes 1, 2, usw. sind dabei die einzelnen Gruppen. Diese können sehr hilfreich sein, wenn man nicht nur einen String nach einem bestimmten Muster sucht, sondern ihn dann auch noch in seine einzelnen Bestandteile zerlegen will, so wie es in diesem Fall war.

Das Suchmuster wirst du wahrscheinlich nicht sofort verstehen, aber wie gesagt, da gibt es genug Tutorials im Internet, weshalb man hier nicht darauf eingehen braucht.
 
Zurück