我有一些包含数字和英文单词的字符串,需要通过查找并替换成本地化版本的单词进行翻译。您知道如何轻松地在字符串中实现单词替换吗?
谢谢。
编辑:
我已尝试过(将字符串的一部分“to”替换为“xyz”):
谢谢。
编辑:
我已尝试过(将字符串的一部分“to”替换为“xyz”):
string.replace("to", "xyz")
但它不起作用...
这段代码是有效的,但它不会修改调用者对象,而是返回一个新的字符串。
因此,你只需要将其赋值给一个新的字符串变量或当前字符串本身:
string = string.replace("to", "xyz");
或者String newString = string.replace("to", "xyz");
API文档
public String replace (CharSequence target, CharSequence replacement)
自API Level 1起
将此字符串复制并替换指定目标序列中的出现次数为另一个序列。从头开始处理该字符串。
参数:
target
: 要替换的序列。replacement
: 替换序列。返回值:替换后的字符串。
抛出异常:NullPointerException
如果target
或replacement
为空。
也许对您有兴趣:
在Java中,字符串对象是不可变的。不可变意味着不可修改或不可更改。
一旦字符串对象被创建,它的数据或状态就无法更改,但会创建一个新的字符串对象。
Kotlin中没有replaceAll方法,所以我创建了这个循环来替换字符串或任何变量中的重复值。
var someValue = "https://www.google.com.br/"
while (someValue.contains(".")) {
someValue = someValue.replace(".", "")
}
Log.d("newValue :", someValue)
// in that case the stitches have been removed
//https://wwwgooglecombr/
String str = "to";
str.replace("to", "xyz");
只是尝试一下 :)
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);
你只犯了一个错误。
在那里使用replaceAll()
函数。
例如:
String str = "Hi";
String str1 = "hello";
str.replaceAll( str, str1 );
replaceAll()
函数不会改变原始字符串,它将处理后的字符串作为结果返回。 - rekaszeru