2016-05-22 8 views
1

nehme ich einen String haben erhalten:Wie Keywords aus einem bestimmten Index in Java

String advise = "eat healthy food"; 

In der Zeichenfolge Ich weiß nur das Stichwort „gesund“. Ich weiß nicht was vor dem Wort noch was nach dem Wort hat. Ich kenne nur das mittlere Wort. Wie kann ich also das "Essen" und das "Essen" Schlüsselwort "gesund" bekommen?

Hinweis: Hier ist die Größe des mittleren Wortes immer genau, aber die Größe der beiden anderen Wörter ist immer unterschiedlich. Hier wurden "Essen" und "Essen" nur als Beispiel verwendet. Diese beiden Wörter können jederzeit beliebig sein.

Ich brauche diese zwei Wörter in zwei verschiedene Zeichenfolgen, nicht in der gleichen Zeichenfolge.

Antwort

0

aufgeteilt einfach die string:

advise.split("healthy"); 

Der erste Wert in dem Array "fressen" wird, wird die zweite "food" werden.

+0

Sir, bitte sehen Sie die editierte Frage – user6363583

0

Hier ist eine allgemeinere Lösung, die komplexere Strings behandelt.

public static void main (String[] args) 
{ 
    String keyword = "healthy"; 

    String advise = "I want to eat healthy food today"; 

    Pattern p = Pattern.compile("([\\s]?+[\\w]+[\\s]+)" + keyword + "([\\s]+[\\w]+[\\s]?+)"); 
    Matcher m = p.matcher(advise); 

    if (m.find()) 
    { 
     String before = m.group(1).trim(); 
     String after = m.group(2).trim(); 

     System.out.println(before); 
     System.out.println(after); 
    } 
    else 
    { 
     System.out.println("The keyword was not found."); 
    } 
} 

Ausgänge:

essen

Essen

0

Ich glaube, Sie Split verwenden können und die alle Wörter getrennt bekommen, wie man wollte.

String advise = "eat healthy food"; 
String[] words = advise.split("healthy"); 
List<String> word = Arrays.asList(words); 
word.forEach(w-> System.out.println(w.trim())); 
Verwandte Themen