如何使用java将点(。)替换为逗号(,)

时间:2011-05-18 11:33:31

标签: java string

我有String str = 12,12 我想用(逗号)替换。(点)进行十进制数计算, 目前我正在尝试这个:

 if( str.indexOf(",") != -1 )
 {
     str.replaceAll(",","\\.");
 }

请帮助

9 个答案:

答案 0 :(得分:48)

你的问题不在于匹配/替换,但是String是不可变的,你需要分配结果:

str = str.replaceAll(",","."); // or "\\.", it doesn't matter...

答案 1 :(得分:14)

只需使用replace代替replaceAll(预期正则表达式):

str = str.replace(",", ".");

str = str.replace(',', '.');

replacecharCharSequence作为输入,这是String实现的接口)

另请注意,您应该重新分配结果

答案 2 :(得分:8)

str = str.replace(',', '.')

应该这样做。

答案 3 :(得分:2)

if(str.indexOf(",")!=-1) { str = str.replaceAll(",","."); }

甚至更好

str = str.replace(',', '.');

答案 4 :(得分:2)

对于您提供的当前信息,使用这个简单的正则表达式进行替换就足够了:

str.replaceAll(",", ".");

答案 5 :(得分:1)

只需使用str.replace(',', '.') - 当要替换单个字符时,它既快又有效。如果逗号不存在,则不执行任何操作。

答案 6 :(得分:1)

在java src中

你可以添加一个像这样的新工具:

public static String remplaceVirguleParpoint(String chaine) {
       return chaine.replaceAll(",", "\\.");
}

答案 7 :(得分:1)

使用此:

String str = " 12,12"
str = str.replaceAll("(\\d+)\\,(\\d+)", "$1.$2");
System.out.println("str:"+str); //-> str:12.12
希望能帮到你。

答案 8 :(得分:0)

如果您想更改它,因为您来自欧洲并且想要使用点而不是逗号来使用扫描仪读取输入,您可以这样做:

Scanner sc = new Scanner(System.in);
sc.useLocale(Locale.US);
System.out.println(sc.locale().getDisplayCountry());

Double accepted with comma instead of dot