Java Bestimmte String-Methode

  • Ersteller Ersteller Donnidonis
  • Erstellt am Erstellt am
D

Donnidonis

Gast
Ich habe eine kleine Frage.
Ich bin mir nicht sicher ob es so eine Methode gibt, wenn nicht schreib ich sie flott selber, wollte nur vorher sicher gehen.

Zu meinem Beispiel:
Ich habe den String "*Peter*Hallo wie geht es dir?
Jetzt möchte ich alles, was zwischen *...* steht, also Peter, als String zurückbekommen.
Gibt es da schon eine fertige Methode?

Liebe Grüße
 
String[] parts = inputString.split('*');

Dein Peter wäre dann parts[0]
 
SaxnPaule schrieb:
String[] parts = inputString.split('*');

Dein Peter wäre dann parts[0]


Wohl eher parts[1], denn parts[0] == ""

und wahrscheinlich auch:

Code:
split("\\*");
 
Code:
    Pattern pattern = Pattern.compile("\\*(.*)\\*");
    Matcher matcher = pattern.matcher("*Peter*Hallo wie geht es dir");
    System.out.println(matcher.group(1));
 
Wohl eher

Code:
Pattern pattern = Pattern.compile("\\*(.*)\\*");
Matcher matcher = pattern.matcher("*Peter*Hallo wie geht es dir");
if(matcher.find())
  System.out.println(matcher.group(1).replace("*", ""));
 
Zuletzt bearbeitet:
Das replace kann man sich sparen, wenn man nur 2 * in seinem Text hat.
Ansonsten kann man es auch so verwenden

Code:
    Pattern pattern = Pattern.compile("\\*(.*?)\\*");
    Matcher matcher = pattern.matcher("*Peter*Hallo wie geht es dir");
    if(matcher.find())
    System.out.println(matcher.group(1));

So bekommt man nur den Inhalt zwischen den *. Also hier den "Peter" :-)
 
Falls es schnell (performance) gehen muss, z.b. für eine Massenverarbeitung, ist String.split() oder generell regex eher langsamer. Es kann dann auch sinn machen auf andere Varianten zurückzugreifen, mittels substring oder StringTokenizer
 
Man kann auch nur ein einziges substring command verwenden. Dann kann man zeigen, dass es eine nicht-deterministische Turingmaschine gibt, die das Problem in konstanter Zeit mit minimalem Aufwand lösen kann!

:D
 
Zurück
Oben