2016-04-09 5 views
0

Ich schreibe etwas Java-Code, der im Wesentlichen unordentliche Daten im Tabellenformat aus einer Flatfile (.CSV) Quelle reinigt. Alle Datensätze sind derzeit im String-Format gespeichert, obwohl einige der Spalten offensichtlich (auf einer Prüfstufe) Datumsangaben, Dollarbeträge und Ganzzahlen sind. Ich möchte Informationen basierend auf dem Datentyp speichern, die jede Spalte für eine bessere Praxis möglicherweise sein könnte, da die Ausgabe direkt in SQL importiert wird.Wie finde ich den möglichen, feingranularsten Datentyp von Objekten, die derzeit als Strings in Java gespeichert sind?

Um klar zu sein, was ich nach, für jeden Datensatz x, wo x eine Zeichenfolge ist, möchte ich überprüfen, ob X möglicherweise in ein int, double oder Datum konvertiert werden kann (je feiner desto besser). Ich habe überlegt, dies zu tun mit versuchen & fangen, versuchen, jeden Datensatz in jeden Datentyp bzw. zu konvertieren, ob eine Ausnahme gefangen wurde oder nicht. Sicherlich gibt es einen besseren Weg?

Ich hoffe, das oben genannte ist klar.

Cheers,

Josh

Antwort

0

ich durch die Auflistung alle möglichen Daten geben Sie begegnen beginnen würde. Ich würde dann alle möglichen String-Formate in Ihren Dateien für jeden Datentyp auflisten.

Ich würde dann die resultierenden Listen von Formaten studieren und bestimmen, ob was Sie wollen, ist sogar möglich. Kann eine Zeichenkette zwischen Ihren Trennzeichen absolut genau auf einen Typ festgelegt werden? Es wird hilfreich sein, wenn für jede flache Datei jede Spalte ein einheitlicher Typ ist, so dass Sie mehr als ein Zeichenfolgenformat verwenden können; Auch wenn einzelne Werte unterschiedliche Formate haben, können Sie davon ausgehen, dass es für die Spalte einen Typ gibt.

Wenn das auf die eine oder andere Weise gemacht werden kann, dann empfehle ich, in reguläre Ausdrücke zu schauen. Ich mache das nicht oft, ich denke, sie sind fehleranfällig und überstrapaziert, aber ich denke, sie passen zu diesem Fall. Sie können reguläre Ausdrücke erstellen, die mit den einzelnen Zeichenfolgenformaten in Ihrer Liste übereinstimmen. Wenn die Zeichenfolge übereinstimmt, erhalten Sie Ihren Typ, und Sie können Ihren Wert dann dem gewünschten Variablentyp zuordnen.

Hinweis: Ich habe gerade festgestellt, dass ich nicht sicher bin, ob Sie erwarten, für jeden Wert einen Typ zu bestimmen; Sie sagen "Speichern Sie Informationen basierend auf dem Datentyp, den jede Spalte möglicherweise haben könnte", so als ob Sie eine Zeichenfolge möglicherweise in mehr als einen Typ konvertieren würden. Ich habe es vermisst, weil das ungewöhnlich ist; Ich bin nicht sicher, was Sie mit den mehreren Werten tun werden, aber wenn Sie das wollen, erleichtert das die Programmierung, obwohl die Ergebnisse mehrdeutig sind.

Verwandte Themen