Советы по проблеме 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 

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

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

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

 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 Замена нескольких разных подстрок в строке сразу (или наиболее эффективным способом)
  • Замена заметок в Vim
  • String.Replace () vs. StringBuilder.Replace ()
  • Можно ли заменить группы в Java regex?
  • BOOST_STATIC_ASSERT без повышения
  • Заменить строку в файле с помощью nodejs
  • Строка XSLT заменяет
  • Как подсчитать слова в MySQL / регулярном выражении replacer?
  • Какой вкус Regex использует Visual Studio Code?
  • Найти и заменить слова / строки в файле
  • Отключить домашнюю кнопку в приложении android toddler?
  • Давайте будем гением компьютера.