2017-09-23 59 views

回答

0

請確認是否能解決你的問題:

package q46379748; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class FindWord { 

    public static void main(String[ ] args) { 
     String input = "This is introductory information of new word search engine"; 

     String query = "in"; 

     String[ ] result = new FindWord().findWords(input, query); 

     for (String s : result) { 
      System.out.println(s); 
     } 
    } 

    private String[ ] findWords(String input, String query) { 
     Pattern p = Pattern.compile("\\b" + query + "\\w*\\b"); 

     Matcher m = p.matcher(input); 

     List<String> v = new ArrayList<>(); 
     while (m.find()) { 
      v.add(m.group()); 
     } 

     return v.toArray(new String[ 0 ]); 
    } 

} 

注意,此解決方案使用正則表達式(正則表達式)和創建模式是\bin\w+\b,其中:

  • \b意味着字邊界
  • \w指字的字符
  • *意味着前一個項目的零個或多個(任何數量),在這種情況下,\w

保持請記住,將查詢更改爲RegEx查詢會更好:

String query = "\\bin\\w*\\b"; 

Pattern p = Pattern.compile(query); 

如果你想學習正則表達式,有大量的材料在那裏:

https://regexone.com/

http://www.regular-expressions.info/tutorial.html

http://www.rexegg.com/

相關問題