使用随机逗号或点分隔符从文件中解析双精度

Posted

技术标签:

【中文标题】使用随机逗号或点分隔符从文件中解析双精度【英文标题】:parse double from file with random comma or dot separator 【发布时间】:2014-07-28 15:00:53 【问题描述】:

我需要解析一个包含带有随机分隔符(点或逗号)的数字的文件

使用这个:Double.parseDouble(scanner.next().trim()); 我得到一个 NumberFormatException

如何避免?

【问题讨论】:

用点替换逗号,然后解析。 java.lang.String 有一个 javadoc,它告诉你如何替换字符。 我无法编辑文件 文件长什么样? 示例:123.15 126,69988 12648.65 156,155 157,665 如果无法编辑文件,可以读入文件中的一串字符,将逗号替换为点,然后解析为双精度 【参考方案1】:
Double.parseDouble(scanner.next().trim().replace(',','.'));

在尝试解析之前将字符串中的逗号替换为句点。

【讨论】:

【参考方案2】:

如果您想将逗号/点分隔的字符串视为不同的双变量,我认为这就是您所需要的。

try 

        Scanner scanner = new Scanner(file);
        scanner.useDelimiter("[\\.,\\ ]");

        while (scanner.hasNext()) 
            double d = Double.parseDouble(scanner.next().trim());

            System.out.println(d);
        
        scanner.close();
     
    catch (FileNotFoundException e) 
        e.printStackTrace();
    

HTH, 凯沙瓦。

【讨论】:

以上是关于使用随机逗号或点分隔符从文件中解析双精度的主要内容,如果未能解决你的问题,请参考以下文章

使用 fscanf 读取逗号分隔的双精度

将带逗号的双引号作为分隔符从 S3 导入 Amazon Redshift

如何格式化数据库中的双精度数据并在 Android 上使用逗号作为小数分隔符设置到 Textview

XML 模式/验证:数据类型双精度的不同分隔符

当全球化将逗号设置为小数分隔符时,如何在 OpenXML Excel 单元格中存储小数/双精度

如何用Java解析CSV文件