java - 将 "45,978"解析为双值

标签 java csv

我想将从 *.csv 读取的 "45,978" 解析为双倍。现在我正在做:

double P_current = Double.parseDouble(priceList.get(j));

但是我收到此字符串输入的数字格式异常:

java.lang.NumberFormatException: For input string: "45,978"

我知道我可以将 csv 文件中的所有 , 更改为 . 这可能会起作用。但是我不希望这样,因为我需要这个文件中的逗号。有什么方法可以将其解析为 double as-it-is 吗?

感谢您的回答!

最佳答案

如果您不想替换任何内容,可以使用NumberNumberFormatLocale#GERMAN :

try {
   NumberFormat nf = NumberFormat.getInstance(Locale.GERMAN);
   double number = nf.parse("45,978").doubleValue();
} catch(ParseException e) { }

如果您想与语言环境无关,只需将 , 替换为 . 即可获取 Double#parseDouble 使用的格式.

关于java - 将 "45,978"解析为双值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20932470/

相关文章:

java - java 是否可以在二分查找中检查特殊字符?

java - 我应该保持与谷歌云存储的开放连接吗?

java - 如何修剪字符串两次并获得不同的信息?

sql - 有没有办法在C语言中使用CSV作为数据库?

c# - 如何在 C# 中使用 post Web 请求发送 .csv 文件

java - 将行数组放入数组中

csv - 使用 bash 或 awk 打乱大型 csv 文件的行和列

java - 为什么我每次都必须去 Eclipse 中运行配置?

java - Lambda 对私有(private)方法的可访问性

java - 如何将 Class[] 和 Object[] 传递给 gwt 服务?