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