Как заменить запятую (,) на точку (.) С помощью Java - PullRequest
17 голосов
/ 18 мая 2011

У меня String str = 12,12 Я хочу заменить, (запятая) на. (Точка) для вычисления десятичного числа, В настоящее время я пытаюсь это:

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

, пожалуйста, помогите

Ответы [ 8 ]

48 голосов
/ 18 мая 2011

Ваша проблема не в совпадении / замене, а в том, что строка неизменна, вам нужно присвоить результат:

str = str.replaceAll(",","."); // or "\\.", it doesn't matter...
14 голосов
/ 18 мая 2011

Просто используйте replace вместо replaceAll (что предполагает регулярное выражение):

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

или

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

(replace принимает в качестве входных данных либо char, либо CharSequence, который является интерфейсом, реализованным String)

Также обратите внимание, что вы должны переназначить результат

9 голосов
/ 18 мая 2011
str = str.replace(',', '.')

должен сделать трюк.

2 голосов
/ 18 мая 2011

Для текущей информации, которую вы предоставляете, будет достаточно простого регулярного выражения для замены:

str.replaceAll(",", ".");
2 голосов
/ 18 мая 2011
if(str.indexOf(",")!=-1) { str = str.replaceAll(",","."); }

или даже лучше

str = str.replace(',', '.');
1 голос
/ 01 августа 2017

Используйте это:

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

надеюсь, поможет вам.

1 голос
/ 09 июня 2015

в java src вы можете добавить новый инструмент, подобный этому:

public static String remplaceVirguleParpoint(String chaine) {
       return chaine.replaceAll(",", "\\.");
}
1 голос
/ 18 мая 2011

Просто используйте str.replace(',', '.') - это быстро и эффективно, когда нужно заменить один символ. И если запятая не существует, она ничего не делает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...