在Java中从String解析Date或int或任何基本类型时,需要在try catch中完成,因为可能发生ParseException。如果有一个方法tryParse没有抛出异常,而是返回true或false,如果String可以或不能被解析,那将是很好的。在线的几个例子描述了编写实用程序函数来解析int。但我相信这对于更多类型也是必要的:int,long,Date等......因为这是一个常见的问题,我想知道是否有一个实用程序库已经有这些基本类型的tryParse方法? / p>
答案 0 :(得分:2)
Apache Commons Lang有一些课程可以帮助您完成任务。
<小时/> NumberUtils有方法:
isNumber - 检查String是否为有效的Java编号。
isParsable - 检查给定的String是否是可解析的数字。
DateUtils包含一个方法ParseDate,可根据您的需要用于实现日期的ParseExceptions
方法。
您可以使用这些类来实现自己的简单框架,以避免代码中出现NSURLProtocol
。
答案 1 :(得分:1)
这取决于用例。由另一个软件生成的字符串通常需要采用正确的格式,因此在不太可能的情况下捕获异常,这样做很好。
对于用户输入,无论如何,Integer.parseInt
之类的简单解析例程都是不够的。您通常会获取适合于数据类型和用户语言的Format
对象,该对象具有允许处理错误的parseObject
方法。如果出现错误,它将返回null
,并且您的ParsePosition
对象将更新以反映错误的位置。
请注意,对于类似Date
的类型,无论如何都没有相当于Integer.parseInt
的原始解析例程。总是由DateFormat
处理,所以你总是有Format
个对象,问题变得毫无意义。