Guten Abend Community,
ich habe eine Datenbank vorliegen und möchte eine Suchmaschine bauen. Das einzige Problem, was jetzt aufgetreten ist: suche ich nach Nachnamen mit "Sch" werden alle richtigen Ergebnisse - wie z.B. Schmidt, Schwarz,... - angezeigt. Sobald ich aber nach 4 Strings suche, wie z.B. "Schm", erscheint die Fehlermeldung:
java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.lang.String.substring(Unknown Source)
Hier der Code-Abschnitt:
Was ich echt merkwürdig finde ist z.B.: Wenn ich nach "Kla" suche, kommen mehrere mit den Namen Klaus und einer mit Klaus-Peter. Sobald ich nach "Klau" suche, kommt die selbe Fehlermeldung wie oben. 😕
Ich bin dankbar für jeden Rat.
Mit freundlichen Grüßen
jonasvi
ich habe eine Datenbank vorliegen und möchte eine Suchmaschine bauen. Das einzige Problem, was jetzt aufgetreten ist: suche ich nach Nachnamen mit "Sch" werden alle richtigen Ergebnisse - wie z.B. Schmidt, Schwarz,... - angezeigt. Sobald ich aber nach 4 Strings suche, wie z.B. "Schm", erscheint die Fehlermeldung:
java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.lang.String.substring(Unknown Source)
Hier der Code-Abschnitt:
Code:
String nn = ein_nachname.getText().toLowerCase();
String vn = ein_vorname.getText().toLowerCase();
String id = ein_id.getText().toLowerCase();
Object plz = ein_plz.getSelectedItem();
int laengeNN = nn.length();
int laengeVN = vn.length();
int laengeID = id.length();
for (int i = 1; i < sheet.getRows(); i++) {
boolean isNN = nn.isEmpty() || nn.equals(sheet.getCell(1, i).getContents().toLowerCase().substring(0,laengeNN));
boolean isVN = vn.isEmpty() || vn.equals(sheet.getCell(2, i).getContents().toLowerCase().substring(0,laengeVN));
boolean isID = id.isEmpty() || id.equals(sheet.getCell(0, i).getContents().toLowerCase().substring(0,laengeID));
boolean isPLZ = plz.equals("") || plz.equals(sheet.getCell(4, i).getContents().toLowerCase());
boolean isValidCell = isNN && isVN && isID && isPLZ;
Was ich echt merkwürdig finde ist z.B.: Wenn ich nach "Kla" suche, kommen mehrere mit den Namen Klaus und einer mit Klaus-Peter. Sobald ich nach "Klau" suche, kommt die selbe Fehlermeldung wie oben. 😕
Ich bin dankbar für jeden Rat.
Mit freundlichen Grüßen
jonasvi