2011-04-22 131 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

相关问题