2011-05-18 89 views
15

我有String str = 12,12 我想用。(点)代替十进制数, 当前我正在尝试:如何使用java替换逗号(。),点(。)使用java

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

请帮助

+1

你知道该方法不修改字符串,但返回修改的,对吗? – 2011-05-18 11:37:37

+0

可能重复的[java replaceAll()](http://stackoverflow.com/questions/1092416/java-replaceall) – 2011-05-18 11:50:25

回答

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

应该做的伎俩。

14

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

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

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

replace作为输入要么charCharSequence,其是由String实现的接口)

另请注意,你应该reassi GN结果

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

甚至更​​好

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

这个:'“\。”'不会编译 – MByD 2011-05-18 11:37:03

+1

你说得对,会编辑相应的 – 2011-05-18 11:38:26

1

只要使用str.replace(',', '.') - 它既是快速,高效,当单个字符将被替换。如果逗号不存在,它什么也不做。

+0

str。全部替换(”,”,”\\。”);诀窍! :P – alpesh 2011-05-19 07:38:31

42

你的问题是不是与匹配/更换,但该字符串是不可改变的,您需要分配结果:

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

+1这是真正的问题。做得好。 – Boro 2011-05-18 11:42:13

+0

是的,但他不需要正则表达式部分。 – Bozho 2011-05-18 12:01:50

+0

正是这个问题。 – 2013-09-19 02:57:59

2

对于你给当前的信息,它会与这个简单的正则表达式来足够多的做替换:

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

在java src时,您可以添加这样一个新工具:

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

使用此:

String str = " 12,12" 
str = str.replaceAll("(\\d+)\\,(\\d+)", "$1.$2"); 
System.out.println("str:"+str); //-> str:12.12 

希望帮助你。