2011-04-22 169 views
51

我有一些數字和英文單詞的字符串,我需要將它們翻譯成我的母語,方法是找到它們並用本地化版本替換它們。你知道如何輕鬆實現替換字符串中的單詞嗎?Android - 如何用另一個字符串替換部分字符串?

感謝

編輯:

我已經試過(字符串的一部分 「改爲」 應以 「某某」 代替):

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

但它不工作...

回答

159

它正在工作,但它不會修改調用者對象,而是返回一個新的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

+0

感謝ID的EditText上,這就是我一直在尋找 – Waypoint 2011-04-22 10:22:58

+2

@rekaszeru謝謝... 你的回答是非常有益的。 – 2011-10-14 12:20:50

+0

我怎樣才能把multipel的東西?例如'替換字母h或l'? – 2016-02-11 03:26:26

-2

你只犯了一個錯誤。

在那裏使用replaceAll()函數。

例如

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

- 'replaceAll()'函數不會改變原始字符串,它會返回處理後的字符串! – rekaszeru 2011-09-27 08:43:58

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

試試吧:)

1

可吸引您:

在java中,字符串對象是不可改變的。不可變只是意味着不可修改或不可改變。

創建字符串對象後,其數據或狀態不能更改,但會創建新的字符串對象。

-2

rekaszeru

我注意到,你在2011年的評論,但我想我應該反正張貼此答案,萬一有人需要「代替原來的字符串」,並運行到這個答案..

林使用的EditText作爲例子


// GIVE TARGET的名稱文本框中

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

//替換字符串

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

//替換字符串與所返回的STRINGS

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

//使用返回的字符串等的更換新的字符串INSIDE TEXTBOX

textbox.setText(returnedString); 

這是未經測試,但它只是一個使用返回的字符串替換原始佈局字符串與setText()的例子!

顯然這個示例要求您有設置爲your_textboxID

相關問題