Android - как заменить часть строки на другую строку?


У меня есть строки с некоторыми числами и английскими словами, и мне нужно перевести их на мой родной язык, найдя их и заменив их локализованной версией этого слова. Вы знаете, как легко добиться замены слов в строке?

спасибо

Edit:

Я пробовал (часть строки " to "должна быть заменена на"xyz"):

string.replace("to", "xyz")

но это не работает...

5 55

5 ответов:

он работает, но он не будет изменять вызывающий объект, но возвращает новую строку.
Поэтому вам просто нужно назначить его новой строковой переменной или самому себе:

string = string.replace("to", "xyz");

или

String newString = string.replace("to", "xyz");

API Docs

public String replace (CharSequence target, CharSequence replacement) 

так как: API Level 1

копирует эту строку замены вхождения указанного целевого объекта последовательность с другой последовательностью. Этот строка обрабатывается из начало до конца.

параметры

  • target последовательности для замены.
  • replacement замена последовательность.

возвращает результирующую строку.
закидываемNullPointerException если цель или замена равна нулю.

String str = "to";
str.replace("to", "xyz");

просто попробуй :)

МОЖЕТ БЫТЬ ВАМ ИНТЕРЕСНО:

в java строковые объекты являются неизменяемыми. Неизменяемый просто означает неизменяемый или неизменяемый.

после создания объекта string его данные или состояние не могут быть изменены, но создается новый объект string.

Вы делаете только одну ошибку.

использовать

rekaszeru

Я заметил, что вы прокомментировали в 2011 году, но я думал, что должен опубликовать этот ответ в любом случае, если кому-то нужно "заменить исходную строку" и столкнуться с этим ответом ..

Я использую EditText в качестве примера


/ / ДАЙТЕ ЦЕЛЕВОМУ ТЕКСТОВОМУ ПОЛЮ ИМЯ

 EditText textbox = (EditText) findViewById(R.id.your_textboxID);

/ / СТРОКА ДЛЯ ЗАМЕНЫ

 String oldText = "hello"
 String newText = "Hi";      
 String textBoxText = textbox.getText().toString();

/ / ЗАМЕНИТЬ СТРОКИ С ВОЗВРАЩЕННЫМИ СТРОКАМИ

String returnedString = textBoxText.replace( oldText, newText );

// использование ВОЗВРАЩЕННЫЕ СТРОКИ ДЛЯ ЗАМЕНЫ НОВОЙ СТРОКИ ВНУТРИ ТЕКСТОВОГО ПОЛЯ

textbox.setText(returnedString);

это непроверено, но это всего лишь пример использования возвращенной строки для замены исходной строки макетов на setText() !

очевидно, этот пример требует, чтобы у вас был EditText с идентификатором, установленным в your_textboxID