Hallo! Eine kurze Frage über diesen Code. Nämlich wenn ich den Code ohne den ersten if statement probiere,ist die Ausgabe true und dann ein "StringOutOfBoundException" exception. Warum passiert dass? Sollte es nicht nur false züruckliefern,da dieser String nicht existiert? Oder versucht das Program eine Stelle weiter zu gehen und geht raus aus dem String? Vielleicht rede ich Blüdsinn, bin sicher jemand weiss genau was passiert. Danke!
Java:
public class test {
private static final String TEXT = "This is the text to be searched";
private static boolean hasSubstring(String toFind, String findFrom) {
//ohne das StringOutOfBound exception
if (findFrom.length() == 0) {
return false;
}
if (findFrom.startsWith(toFind)) {
return true;
}
return hasSubstring(toFind, findFrom.substring(1));
}
public static void main(String[] argv) {
System.out.println(hasSubstring("text to", TEXT));
System.out.println(hasSubstring("goo", TEXT));
System.out.println(hasSubstring("This", TEXT));
System.out.println(hasSubstring("searched", TEXT));
System.out.println(hasSubstring("the text", TEXT));
}
}