Подтвердить что ты не робот

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

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

Спасибо

Edit:

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

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

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

4b9b3361

Ответ 1

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

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

или

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

Документы API

public String replace (CharSequence target, CharSequence replacement) 

Начиная с: API уровня 1

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

Параметры

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

Возвращает результирующую строку.

Выбрасывает NullPointerException, если цель или замена равно null.

Ответ 2

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

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

Ответ 3

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

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

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

Ответ 4

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

используйте replaceAll() функцию там.

например.

String str = "Hi";
String str1 = "hello";
str.replaceAll( str, str1 );

Ответ 5

rekaszeru

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

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


//ДАЖИТЕ ЦЕЛЬ ТЕКСТОВОЙ КОРОБКИ ИМЯ

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

//STRING TO REPLACE

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

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

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

//ИСПОЛЬЗОВАТЬ ВОЗВРАЩАЕМЫЕ STRINGS ДЛЯ ЗАМЕНИТЬ НОВУЮ СТРОКУ ВНУТРИ ТЕКСТОВОГО ТЕКСТА

textbox.setText(returnedString);

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

Очевидно, что для этого примера требуется, чтобы у вас был EditText с идентификатором, установленным для вашего_текстаксида