2016-04-09 7 views
0

Tablo biçiminde depolanan karmaşık verileri temel olarak bir flatfile (.CSV) kaynağından temizleyen bir java kodu yazıyorum. Bazı sütunlar açık bir şekilde (bir anlamda kontrol seviyesinde) tarihler, dolar tutarları ve tam sayılar olsa da, tüm kayıtlar şu anda Dize formatında saklanır. Çıktı doğrudan SQL'ye aktarılacağından, her bir sütunun daha iyi uygulama için hangi veri tipinin olabileceğini temel alarak bilgileri depolamak istiyorum.Şu anda java dizesi olarak saklanan nesnelerin potansiyel, en granüler, nesne türü nasıl bulunur?

Neyin peşindeyim olduğu açık olmak gerekirse, x'in bir dizge olduğu her kayıt x için, x'in muhtemelen int, double veya date (daha iyi olanı ne kadar ayrıntılı) haline dönüştürülüp dönüştürülmediğini kontrol etmek istiyorum. Her kaydı sırasıyla her veri tipine dönüştürmeye çalışarak ve bir istisnanın yakalanıp yakalanmadığını kaydetmeyi denediğimde, bunu & catch kullanmayı deneyin. Elbette daha iyi bir yolu var mı?

Umarım yukarıdaki açıktır. Ben mümkün olan her veriyi listeleyerek başlayacaktı

Alkış,

Josh

cevap

0

karşılaşacağınız yazın. Daha sonra, her veri türü için dosyalarınızdaki olası tüm dize biçimlerini listeleydim.

Sonuçta ortaya çıkan sonuç listelerini inceler ve ne istediğinizin mümkün olup olmadığını belirlerim. Sınırlayıcılarınız arasındaki bir dizgenin tam olarak bir tipte olduğu kesin olarak belirlenebilir mi? Her bir düz dosya için her sütunun tek tip bir türü olması, böylece birden fazla dize formatı örneğinizin olması durumunda yardımcı olacaktır; bireysel değerler farklı biçimlerde olsa bile, sütun için bir tür olduğunu varsayabilirsiniz.

Eğer bu bir şekilde yapılabilirse, o zaman normal ifadelere bakmanızı tavsiye ederim. Bunu sık sık yapmıyorum, bence hataya eğilimli ve fazla kullanılıyorlar, ama bence bu davaya uyuyorlar. Listenizdeki dize biçimlerinin her birini eşleştirmek için düzenli ifadeler oluşturabilirsiniz. Dize eşleşirse, bu size türünüzü verir ve sonra değerinizi istediğiniz değişken türüne göre ayrıştırabilirsiniz.

Not: Her bir değer için bir tür belirlemeyi beklediğinizden emin olmadığımı fark ettim; Mümkünse bir dizeyi birden fazla türe dönüştürebiliyormuşsunuz gibi, "her bir sütunun hangi veri tipine sahip olabileceğini temel alarak bilgi depola" dırsınız. Özledim çünkü bu sıra dışı; Birden fazla değerle ne yapacağınızdan emin değilim, ancak istediğiniz şey buysa, sonuçlar belirsiz olsa da, programlama işlemini kolaylaştırır.

İlgili konular