Советы по проблеме java.lang.String.replace?

Я бы хотел заменить “.” by “,” в String / double, который я хочу записать в файл.

Используя следующий код Java

double myDouble = myObject.getDoubleMethod(); // returns 38.1882352941176 System.out.println(myDouble); String myDoubleString = "" + myDouble; System.out.println(myDoubleString); myDoubleString.replace(".", ","); System.out.println(myDoubleString); myDoubleString.replace('.', ','); System.out.println(myDoubleString); 

Я получаю следующий вывод

 38.1882352941176 38.1882352941176 38.1882352941176 38.1882352941176 

Почему замена не делает то, что она должна делать? Я ожидаю, что последние две строки содержат «,».

Должен ли я делать / использовать что-то еще? Предложения?

5 Solutions collect form web for “Советы по проблеме java.lang.String.replace?”

Вам нужно назначить новое значение переменной.

 double myDouble = myObject.getDoubleMethod(); // returns 38.1882352941176 System.out.println(myDouble); String myDoubleString = "" + myDouble; System.out.println(myDoubleString); myDoubleString = myDoubleString.replace(".", ","); System.out.println(myDoubleString); myDoubleString = myDoubleString.replace('.', ','); System.out.println(myDoubleString); 

Исходная строка не изменяется. Вызов возвращает измененную строку, поэтому вам нужно будет сделать это:

 String modded = myDoubleString.replace(".",","); System.out.println( modded ); 

Чем больше вопрос, почему не использовать DecimalFormat вместо того, чтобы делать замену String?

replace возвращает новую String (поскольку String неизменна в Java):

 String newString = myDoubleString.replace(".", ","); 

Всегда помните, строки неизменны. Они не могут измениться. Если вы вызываете метод String, который каким-то образом его изменяет, вам нужно сохранить возвращаемое значение. Всегда.

Я помню, как я узнал об этом больше, чем несколько раз в Uni 🙂

  • Java String не работает
  • Как искать и заменять текст в файле с помощью Python?
  • Использование get () с функциями замены
  • Разница между строкой replace () и replaceAll ()
  • Как изменить диакритические символы на недиакритические
  • Как найти / найти и заменить в стандартной строке?
  • Сопоставьте значения в кадре данных со значениями в другом кадре данных и замените прежний соответствующим шаблоном из другого кадра данных
  • Заменить строку в файле с помощью nodejs
  • String.Replace () vs. StringBuilder.Replace ()
  • Как использовать разные разделители для команды sed substitute?
  • Как заменить несколько строк в файле с помощью PowerShell
  • Давайте будем гением компьютера.