Android字符串替换多个字符

4

我知道这可能是一个初学者的问题,但由于某种原因我忘记了如何做到这一点。 我有两个字符串。

String s ="[";
String q ="]";

如果我的文本包含以下任何内容,我希望用w替换它们:
String w = "";

我尝试了以下内容:
output=String.valueOf(profile.get("text")).replace(s&&q, w);

据我所知,如果文本中含有 S([) 和 Q(]) 中的任何一个字符,它们将被替换为 w。我的问题在于如何同时替换这两个字符。如果只尝试替换其中一个,那么它可以工作,否则就不行。希望能得到帮助。
7个回答

17

您也可以嵌套它们:

 output=String.valueOf(profile.get("text")).replace(s, w).replace(q, w);

这个做法与之前相同,只是替换了 s 而没有替换 q。 - Tuffy G
你改过它吗?它看起来一样。 - Tuffy G
是的,我已经从中删除了这一行 - **String.valueOf(profile.get("text"))**。 - 0xC0DED00D
非常抱歉,您的第一次尝试是正确的。我将其插入了错误的位置:S 感谢您的帮助。 - Tuffy G
1
我正在经历那种大脑说“不,我要呆在床上”的日子。 - Tuffy G
显示剩余2条评论

11
我想这就是你的意思:
String s = "abc[def]";
String w = "hello";

System.out.println(s.replaceAll("\\[|\\]", w));

输出 abchellodefhello

String.replaceAll() 方法接收一个正则表达式作为其第一个参数,这可以提供所需的灵活性。


它是有意义的,但是]没有被移除。 - Tuffy G
你是复制了已发布的代码还是编辑了新的源代码?我刚刚重新运行了一下,它确实替换了[]两个字符。在正则表达式中,[]是特殊字符,必须进行转义处理。 - hmjd

2
String s = "[";
String q = "]";
String w = "{";
String as = "sdada[sad]sdas";
String newstring = as.replace(s, w).replace(q,w);
Toast.makeText(_activity,newstring,Toast.LENGTH_LONG).show();

这是适用于您的工作代码...

1

我理解了。&& 是我尝试过无数其他方法后的最后一招。 - Tuffy G

0

看看这个

String s ="[";
    String q ="]";
    String w = "";

    String output=w.replace("[", w);
    output=output.replace("]", w);

0

对于任何在2022年寻找解决方案的人,只需按照以下步骤操作。

    String s = "[";
    String q = "]";
    String w = "";
    String text = Some[ Text ] here;
    
    text = text.replace(s, w );
    text = text.replace(q, w );
    String output = text;

-1
尝试使用java.lang.String中的replaceAll方法。

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