Android - 如何用另一个字符串替换部分字符串?
Posted
技术标签:
【中文标题】Android - 如何用另一个字符串替换部分字符串?【英文标题】:Android - how to replace part of a string by another string? 【发布时间】:2011-08-10 21:27:39 【问题描述】:我有一些数字和英文单词的字符串,我需要通过找到它们并将它们替换为该单词的本地化版本来将它们翻译成我的母语。你知道如何轻松实现替换字符串中的单词吗?
谢谢
编辑:
我已经尝试过(字符串“to”的一部分应该替换为“xyz”):
string.replace("to", "xyz")
但它不起作用......
【问题讨论】:
【参考方案1】:在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/
【讨论】:
【参考方案2】: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() 的示例!
显然这个例子要求你有一个 ID 设置为 your_textboxID 的 EditText
【讨论】:
【参考方案3】:您可能会感兴趣:
在java中,字符串对象是不可变的。不可变只是意味着不可修改或不可更改。
一旦创建了字符串对象,它的数据或状态就不能改变,但是会创建一个新的字符串对象。
【讨论】:
【参考方案4】:String str = "to";
str.replace("to", "xyz");
试试吧:)
【讨论】:
【参考方案5】:你只犯了一个错误。
在那边使用replaceAll()
函数。
例如
String str = "Hi";
String str1 = "hello";
str.replaceAll( str, str1 );
【讨论】:
--replaceAll()
函数不改变原始字符串,它返回处理后的字符串作为结果!【参考方案6】:
它正在工作,但它不会修改调用者对象,而是返回一个新的字符串。 所以你只需要把它赋给一个新的 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
如果目标或替换为空。
【讨论】:
如何替换多个元素?例如,Replace letter h or l
?以上是关于Android - 如何用另一个字符串替换部分字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何用空格匹配、计数和替换字符串,但它们不是另一个字母字符串的子字符串?