Ich versuche, eine Teilstring-Methode mit nur CharAt-Methode der String-Klasse
zu implementieren Das Problem tritt auf, wenn ich das letzte Zeichen in den Suchbegriff 'Hat.' Ansonsten funktioniert alles perfekt.
Auch bei der Suche nach Beispiel für 'Hut' sehe ich die CharAt (j) Ablaufverfolgung druckt alle "h" mit Index 0 für alle Zeichen und wahren Auftreten.
Dies ist der komplette Code: 'Hut'Implementieren von Substring-Prüfmethode mit nur charAt
public class SubString {
public static void main(String[] args) {
String line = "The cat in the hat.";
String item = "hat.";
System.out.println("'" + item + "' is substring of '" + line + "' : " + isSubString(item, line));
}
private static boolean isSubString(String item, String line) {
int i = 0;
int j = 0;
int count = 0;
for (i = 0; i < line.length() - item.length(); i++) {
for (j = 0; j < item.length(); j++) {
if (item.charAt(j) != line.charAt(i + j)) {
break;
}
if (item.charAt(j) == line.charAt(i + j)) {
System.out.println(item.charAt(j) + ":" + j + " - " + line.charAt(i + j) + ":" + (i + j));
count++;
}
if (count == item.length())
return true;
}
}
return false;
}
}
wieder das Problem tritt auf, wenn für die Suche < == das letzte Wort mit Punkt.
und der ‚Hut‘, die zwar return true aber Spur falsche Zeichen zeigt (nur H verglichen) und Indizes sind immer 0.
können Sie bitte erklären, warum und wie dies dem OP helfen wird? –