如何找到java中当前存储为字符串的对象的潜在、最细粒度的数据类型?

如何找到java中当前存储为字符串的对象的潜在、最细粒度的数据类型?,java,database,types,type-conversion,data-conversion,Java,Database,Types,Type Conversion,Data Conversion,我正在编写一些java代码,从一个平面文件(.CSV)源中清除以表格格式存储的混乱数据。所有记录当前都以字符串格式存储,即使某些列显然是日期、美元金额和整数(在意义检查级别)。我希望根据每列可能的数据类型存储信息,以便更好地实践,因为输出将直接导入SQL 为了明确我的目标,对于x是字符串的每个记录x,我想检查x是否可以转换为int、double或date(粒度越细越好)。我考虑过使用try&catch来实现这一点,尝试将每个记录分别转换为每个数据类型,并记录是否捕获到异常。肯定有更好的办法吗 我

我正在编写一些java代码,从一个平面文件(.CSV)源中清除以表格格式存储的混乱数据。所有记录当前都以字符串格式存储,即使某些列显然是日期、美元金额和整数(在意义检查级别)。我希望根据每列可能的数据类型存储信息,以便更好地实践,因为输出将直接导入SQL

为了明确我的目标,对于x是字符串的每个记录x,我想检查x是否可以转换为int、double或date(粒度越细越好)。我考虑过使用try&catch来实现这一点,尝试将每个记录分别转换为每个数据类型,并记录是否捕获到异常。肯定有更好的办法吗

我希望以上是清楚的

干杯


Josh

首先,我将列出您将遇到的每种可能的数据类型。然后,我会列出文件中每种数据类型的所有可能字符串格式

然后,我将研究生成的格式列表,并确定您想要的是否可能。分隔符之间的字符串是否可以完全确定为一种类型?如果对于每个平面文件,每个列都是统一的类型,因此您有多个字符串格式示例可供参考,这将有所帮助;即使单个值的格式不同,也可以假定列有一种类型

如果可以这样或那样做,那么我建议研究正则表达式。我不经常这样做,我认为它们容易出错,而且使用过度,但我认为它们适合这种情况。您可以创建正则表达式以匹配列表中的每种字符串格式;如果字符串匹配,这将为您提供类型,然后您可以将值解析为所需的变量类型

注意:我刚刚意识到我不确定您是否希望为每个值确定一种类型;您会说“根据每列可能的数据类型存储信息”,就好像可能会将一个字符串转换为多个类型一样。我错过了,因为这是不寻常的;我不确定您将如何处理多个值,但如果这是您想要的,它会使编程更容易,尽管结果不明确