Ich mache dies seit fast letzten Tagen, aber immer noch nicht in der Lage, eine erforderliche Ausgabe zu erhalten. Nun, ich habe ein Array sagen wordlist[]={"One","Two","Three","Four","Five"};
und dann nehme ich die Eingabe vom Benutzer.Suchen Sie ein Schlüsselwort aus einem Array in einer Eingabezeichenfolge und drucken Sie sie
String input="I have three no, four strings";
Nun, was ich tun möchte, ist eine Suchoperation auf der Saite führt für die Worte in der Array Wortliste [] zu überprüfen; Wie im obigen Beispiel enthält die Eingabezeichenfolge die Wörter drei und vier, die im Array vorhanden sind. also sollte es in der Lage sein, diese Wörter aus dem Array zu drucken, das in der Zeichenfolge verfügbar ist, und wenn keine Wörter aus der Wortliste [] verfügbar sind, sollte es "No Match Found" drucken.
Hier ist mein Code Ich bin davon betroffen. Bitte
import java.util.regex.*;
import java.io.*;
class StringSearch{
public static void main(String ...v)throws IOException{
BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));
String wordlist[]={"one","two","three","four","five"};
String input=cin.readLine();
int i,j;
boolean found;
Pattern pat;
Matcher mat;
Pattern spliter=Pattern.compile("[ ,.!]");
String ip[]=spliter.split(input);
System.out.println(ip[2]);
for(i=0; i<wordlist.length;i++){
for(j=0;j<ip.length;j++){
pat=Pattern.compile("\b"+ip[j]+"\b");
mat=pat.matcher(wordlist[i]);
if(){
// No Idea What to write here
}
}
}
}
}
in der if-Bedingung put 'mat.matches()'. Im if body inkrementiere eine zählende ganze Zahl und verwende sie außerhalb der for-Schleifen, um "no match found" im Falle von Null-Übereinstimmungen zu drucken. Überprüfen Sie auch, dass '" \ b "+ ip [j] +" \ b "' Regex, es funktioniert nicht für mich – Oneiros
@Oneiros 'Übereinstimmungen' hinzufügen '^' und '$' so sollte es das komplette Spiel sein –