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