输入1:这是新单词搜索引擎的介绍性信息
输入2:在
中输出:{introductionctory,information}
答案 0 :(得分: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 ] );
}
}
请注意,此解决方案使用正则表达式(RegEx),创建的模式为\bin\w+\b
,其中:
\b
表示字边界\w
表示单词字符*
表示前一项的零个或多个(任意数量),在本例中为\w
请记住,最好将查询更改为RegEx查询:
String query = "\\bin\\w*\\b";
Pattern p = Pattern.compile( query );
如果你想学习RegEx,那里有很多材料: