Ich habe eine Textdatei. Jede Zeile in der Datei stellt einen Datensatz mit einer Anzahl von Spalten dar, die durch ein | begrenzt sind (Rohr-) Zeichen. Die Spaltenwerte sind vom Typ int, string, date, timestamp usw. Leere Strings und Leerzeichen sind auch als Spaltenwerte möglich.Überprüfen Sie das Schema eines Datensatzes in Java
Ich überprüfe nur die Anzahl der Spaltenwerte und Validierung des Datentyps ist nicht erforderlich.
Beispiel gültige Aufzeichnungen von 5 Spalten je:
1234|xyz|abc|2016-04-08 11:12:40|234
1235|efgh|abc|2016-04-09 11:25:40|
1236|efghij| ||
Validierungscode:
boolean valid = true;
String line = buffReader.readLine();
String[] tokens = null;
while (line != null){
tokens = line.split("\\|");
if ((tokens.length==4 || tokens.length==5) && countPipes(line)==4){
} else {
valid = false;
break;
}
line = buffReader.readLine();
}
private int countPipes(String line){
int count = 0;
count = line.length() - line.replace("|", "").length();
return count;
}
Ich glaube, dass der Code besser sein kann. Kann jemand wissen lassen, wie ich diesen Code verbessern kann?
Erlauben Sie es, dass '' 'in den Spaltenwerten maskiert wird? Wenn ja, muss Ihre Validierung damit umgehen. – dpr
@RealSkeptic Danke für den Hinweis auf den Fehler. Ich habe es korrigiert. – Marco99
@dpr Die Spaltenwerte haben kein "|" sicher. – Marco99