Ich möchte die Zeichenfolge zwischen 2 Wörtern in einer Zeichenfolge abrufen. wie folgt:Eine Zeichenfolge zwischen 2 Wörtern erhalten
String s = "Play A ROCK song"
Also ich möchte die Zeichenfolge zwischen: A und Song, die in diesem Fall ist Rock.
Ich versuchte dies:
public static String subStringBetween(String text, String after, String before) {
String p1 = getWordsAfter(text, after);
String p2 = getWordsBefore(text, before);
Set<String> aSet = new HashSet<>(Arrays.asList(p1.split(" ")));
Set<String> bSet = new HashSet<>(Arrays.asList(p2.split(" ")));
Set<String> result = new HashSet<>(aSet);
result.retainAll(bSet);
String string = "";
for (String s : result) {
if (string == "") {
string = s;
}else{
string +=" " + s;
}
}
return string;
}
public static String getWordsAfter(String text, String word) {
String[] splt = text.split(word);
return splt[1];
}
public static String getWordsBefore(String text, String word) {
String[] splt = text.split(word);
return splt[0];
}
Es funktioniert, aber wenn die Zeichenfolge zwischen A und Song mehr als ein Wort, es funktioniert, aber druckt etwas seltsam, wie wenn es war: Jetzt Nizza Rocksong die Rückkehr wäre Rock Nice, nicht Nice Rock
Versuchen Sie es mit einem regulären Ausdruck zu lösen –
können Sie 'split()' Methode verwenden und eine Suche. –
können Sie einen Blick auf diesen Thread werfen, der Ihnen helfen sollte: http://StackOverflow.com/Questions/16597303/extract-string-between-two-strings-in-java – Rouliboy