正则表达式arraylist

时间:2014-04-29 23:53:59

标签: java android regex csv arraylist

我正在使用arraylist将我写入txt文件的浮点值存储为csv(逗号分隔值)。我遇到了一个问题,我的非北美用户使用小数点逗号","而不是句号"。"

以下是使用德语区域设置的一个文件的输出:

 ,0,003, 0,06, 0,22, 1,01
, 0,015, 0,06, 0,21, 1,02

这是美国版本可以正常用作csv文件:

 ,0.007, -0.05, 0.75, 0.72
, 0.014, -0.04, 0.76, 0.71

如何修复德语版本?我需要替换用分号分隔每个值集的逗号。

2 个答案:

答案 0 :(得分:2)

以下模式(example online)与小数点逗号匹配。

(?<=[\d]),(?=[\d]+(?:,|$|\s))

然后用句号替换它。

java代码示例:

System.out.println("0,003, 0,06, 0,22, 1,01 , 0,015, 0,06, 0,21, 1,02".replaceAll("(?<=[\\d]),(?=[\\d]+(?:,|$|\\s))", "."));

答案 1 :(得分:1)

现在应该可以使用以下内容。

假设:

  • 所有数字都包含逗号

正则表达式:

(\d+),(\d+)

替换:

$1.$2

爪哇:

import java.util.regex.*;

public class JavaRegEx2 {
public static void main(String[] args) {
    String line = ", 0,003, 0,06, 0,22, 1,01 , -0,015, 0,06, 0,21, 1,02";
    String pattern = "(\\d+),(\\d+)";

    String updated = line.replaceAll(pattern, "$1.$2"); 

    System.out.println(updated);

}
}