我有一个String可能有很多不同的东西formats.我需要能够识别值的实际类型,runtime然后将值转换为该类型.
例如.如果我有一个String Fri Feb 08 07:30:00 GMT 2013这实际上是一个Date和一个String应该转换成一个date object并返回如此.
我目前解决这个问题的方法是"尝试"将其转换为数据类型,如果转换成功则一切正常,如果转换失败,则转到下一次转换尝试.这是有效的,但是很丑陋且难以维护,我相信已经存在一个更好的解决方案.
谢谢.
尝试正则表达式:您可以为每种数据类型编写一个模式,然后将该模式与每个实际字符串进行匹配,您可以为每个匹配关联一个转换。这是一个简单的例子(伪Java):
String name = "Mike"; // This is an English name
String nameRegEx ="[A-Z][a-z]+"; //this patterns matches an english name
Matcher nameMatcher = new Matcher(regEx);
if (match.matches(name)){// I use the matches() method to verify the format of the string
Name nameObject = Converter.getNameObjectFromString(name);//I make the conversion
}
Run Code Online (Sandbox Code Playgroud)
查看java文档以获取有关匹配器和正则表达式的更多详细信息: http://docs.oracle.com/javase/tutorial/essential/regex/
| 归档时间: |
|
| 查看次数: |
2431 次 |
| 最近记录: |