Entrée1: Cette information d'introduction du nouveau moteur de recherche de motComment trouver un mot commençant par la chaîne donnée en ligne en JAVA
Input2: dans
Sortie: {introduction, informations}
Entrée1: Cette information d'introduction du nouveau moteur de recherche de motComment trouver un mot commençant par la chaîne donnée en ligne en JAVA
Input2: dans
Sortie: {introduction, informations}
S'il vous plaît, vérifiez si cela résout votre problème:
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 ]);
}
}
Notez que cette solution utilise une expression régulière (RegEx) et le motif créé est \bin\w+\b
, où:
\b
moyens de limite de mot\w
signifie caractères de mot*
signifie zéro ou plus (toute quantité) de l'élément précédent, en l'occurrence le \w
Keep dans l'esprit qu'il serait préférable de changer la requête pour être une requête RegEx:
String query = "\\bin\\w*\\b";
Pattern p = Pattern.compile(query);
Si vous voulez apprendre RegEx, il y a beaucoup de matériel là-bas: