我正在使用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
如何修复德语版本?我需要替换用分号分隔每个值集的逗号。
答案 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);
}
}