Ответ 1
Ваша проблема не в совпадении/замене, но что String неизменна, вам нужно назначить результат:
str = str.replaceAll(",","."); // or "\\.", it doesn't matter...
У меня есть String str = 12,12
Я хочу заменить, (запятую) на. (Dot) для вычисления десятичных чисел,
В настоящее время я пытаюсь это сделать:
if( str.indexOf(",") != -1 )
{
str.replaceAll(",","\\.");
}
пожалуйста, помогите
Ваша проблема не в совпадении/замене, но что String неизменна, вам нужно назначить результат:
str = str.replaceAll(",","."); // or "\\.", it doesn't matter...
Просто используйте replace
вместо replaceAll
(который ожидает регулярное выражение):
str = str.replace(",", ".");
или
str = str.replace(',', '.');
(replace
принимает вход как char
или CharSequence
, который является интерфейсом, реализованным String
)
Также обратите внимание, что вы должны переназначить результат
str = str.replace(',', '.')
должен сделать трюк.
if(str.indexOf(",")!=-1) { str = str.replaceAll(",","."); }
или даже лучше
str = str.replace(',', '.');
Для текущей информации, которую вы даете, будет достаточно, чтобы это простое регулярное выражение выполнило замену:
str.replaceAll(",", ".");
Просто используйте str.replace(',', '.')
- он быстрый и эффективный, когда нужно заменить один символ. И если запятая не существует, она ничего не делает.
в java src вы можете добавить новый инструмент, подобный этому:
public static String remplaceVirguleParpoint(String chaine) {
return chaine.replaceAll(",", "\\.");
}
Используйте это:
String str = " 12,12"
str = str.replaceAll("(\\d+)\\,(\\d+)", "$1.$2");
System.out.println("str:"+str); //-> str:12.12
надеюсь помочь вам.