替换字符串中的文本

4

我想在字符串中找到一段文本并将其替换,但我的代码无法正常工作。需要说明的是,我可以正常获取Webview的标题,但当我输出text2时,我得到整个标题(没有替换文本)。此外,除了text2之外的所有字符串都位于void中。

String text1 = web1.getTitle();
String text2 = text1.toString().replace("-Click 2U - Files", "");

非常感谢您的支持!以下是关于IT技术的文本翻译:


2
这是一个非常简单的谷歌搜索:http://www.daniweb.com/software-development/java/threads/73139 - gtr32x
你能提供完整的标题和你正在使用的实际替换吗? - arc
我的猜测是你的搜索字符串被解释为正则表达式,而你认为它被处理为普通字符串? - Nactive
5
为什么要在 String 上调用 toString() 方法? - C.d.
我的情况是:你设置了text1 = "",我认为你将其放入函数中 - 对text1的引用。然后替换引用(最后一行)。当函数完成时,text1具有旧引用(指向“”)。使用StringBuilder而不是String。stringBuilder.setLength(0); stringBuilder.append(text3) - Andrzej Jozwik
显示剩余3条评论
2个回答

13

您的代码对我而言可行:

 String text1 = "some string with -Click 2U - Files in it";
 String text2 = text1.replace("-Click 2U - Files", "");
 // here text2.equals("some string with  in it")

这将删除所有字符串的实例。您也可以使用replaceAll(...),它使用正则表达式:

 String text1 = "some Click 2U title for Clicking away";
 String text2 = text1.replaceAll("C.*?k", "XXX");
 // here text2.equals("some [XXX 2U title for XXXing away")

请注意,"C.*?k"模式将匹配一个C,然后是任意数量的字符和k?表示不进行贪婪匹配,并在第一个k处停止。 有关详细信息,请阅读您的正则表达式手册


我不明白如何使用这段代码...这段代码 assertEquals("some string with in it", text2); 是什么意思?谢谢。 - Jessy Jameson
抱歉,那只是展示输出结果的方式。我会编辑我的回答,使其更加明确。 - Gray

0

我用它来替换密码

输入

{"Login":"login1", "Password":"password1"} 

inputParameters.toString().replaceAll( "(\"Password\":\")+\\w+\"", "\"Password\":\"*********\"") + "\"")

输出

{"Login":"login1", "Password":"*********"}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接