2011-05-18 58 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 

希望幫助你。