Android - как заменить часть строки на другую строку?
У меня есть строки с некоторыми числами и английскими словами, и мне нужно перевести их на мой родной язык, найдя их и заменив их локализованной версией этого слова. Вы знаете, как легко добиться замены слов в строке?
спасибо
Edit:
Я пробовал (часть строки " to "должна быть заменена на"xyz"):
string.replace("to", "xyz")
но это не работает...
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если цель или замена равна нулю.
МОЖЕТ БЫТЬ ВАМ ИНТЕРЕСНО:
в 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