我有String str = 12,12
我想用(逗号)替换。(点)进行十进制数计算,
目前我正在尝试这个:
if( str.indexOf(",") != -1 )
{
str.replaceAll(",","\\.");
}
请帮助
答案 0 :(得分:48)
你的问题不在于匹配/替换,但是String是不可变的,你需要分配结果:
str = str.replaceAll(",","."); // or "\\.", it doesn't matter...
答案 1 :(得分:14)
只需使用replace
代替replaceAll
(预期正则表达式):
str = str.replace(",", ".");
或
str = str.replace(',', '.');
(replace
将char
或CharSequence
作为输入,这是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)
你可以添加一个像这样的新工具:
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());