Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
SchlüsselwortePrüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist.
ich habe nicht sonderlich viel Programmiererfahrung und habe das Problem, dass ich einen String auf ein bestimmtes, ganzes Wort untersuchen will, das aber nicht hinkriege. Ich habe es mit a. contains (b) versucht, leider wird bei der Methode auch geprüft, ob ein Wort eventuell Teil eines anderen Worts ist (z.B. "mein" ist in "gemein" enthalten). Ich bedanke mich für jede Hilfe.
Ich bin mir nicht sicher dein Problem zu verstehen. Wie wär's wenn du "mein " oder " mein" (mit dem Leerschlag) suchen würdest ? Vielleicht hilft das in deinem konkretem Fall.
Vielleicht hilft es dir einen Teil des Codes zu sehen
String c= sc.nextLine();
String[] f ={"Nein", "nein", "noe", "Noe", "Ne", "ne"};
if (c. contains (f[0]) || c. contains (f[1]) || c. contains (f[2]) || c. contains (f[3]) || c. contains (f[4]) || c. contains (f[5])) {
Anweisung 1 : ( System.out.println("..."); )
} else {
Anweisung 2 : ( System.out.println("..."); )
}
Wenn ich jetzt bei c= "Gerne" schreibe, dann wird Anweisung 1 ausgeführt, da im Wort "Gerne" der Teil "ne" enthalten ist. Jedoch will ich das Anweisung 2 ausgeführt wird. Würde da dein Ansatz auch etwas bringen, da ich ja direkt am Zeilenanfang "ne" schreiben kann und mir dann aber bei " ne" die 2.Anweisung ausgeführt wird, auch wenn ich in dem Fall Anweisung 1 durchführen will.
Ich bin mir nicht sicher dein Problem zu verstehen. Wie wär's wenn du "mein " oder " mein" (mit dem Leerschlag) suchen würdest ? Vielleicht hilft das in deinem konkretem Fall.
Was ich auch schon gemacht habe ist den Text, also bei dir c, in einzelne Worte zu splittten mit em Befehl split. Dann könntest du die Wörter einzeln prüfen.
Java:
String str = "Ich esse gerne Äpfel";
String[] arrOfStr = str.split(" ", -1);
for (String a : arrOfStr)
System.out.println(a);
}
Hierfür kannst du die Java regulären Ausdrücke mit der Character Class "Word Boundary" (\b) verwenden.
Dieser behandelt, Satzzeichen und Leerzeichen.
Also:
Java:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class WortSuche {
public static void main(String[] args) {
String word = "mein";
String regex = "\\b" + word + "\\b";
String text = "Ich sage dir: mein Bruder ist gemein.";
Matcher m = Pattern.compile(regex, Pattern.CASE_INSENSITIVE).matcher(text);
while (m.find()) {
System.out.println("Wort gefunden bei: " + m.start());
}
}
}
Neben dem Vorschlag, dass man den String erst in Worte unterteilt um dann einzelne Worte komplett zu prüfen und dem Vorschlag mit den Regulären Ausdrücken kann man auch einfach die bekannte Suche machen und so durch alle Treffer gehen. Jeder Treffer wird dann geprüft:
ist der Anfang bereits der Anfang des Strings oder ist davor ein Leerzeichen und
ist das Ende das Ende des Strings oder ist danach ein Leerzeichen=