我找到了两种将String转换为double值的策略(考虑到国际化):
1)这使用NumberFormat
与ParsePosition
一起解析字符串,然后assert
使ParsePosition
实例的索引与字符串的长度相同。这样做的缺点是NumberFormat#parse(String,ParsePosition)
的javadoc声明该方法会尝试返回Long
,如果可能的话还会返回Double
。这种方法目前正常工作,但我不确定它在某些情况下是否会失败?
2)这只是单独使用NumberFormat
来解析字符串,但问题是它在调用ParseException
时抛出NumberFormat#parse(String)
所以我总是需要将代码包围起来一个try-catch
块。
我的问题是哪种方法更好,还是有另外一种方法比这两种更好?
我正在尝试将法语区域设置中的String解析为double。