加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何在一行中替换多个字符串?

发布时间:2020-12-15 04:49:14 所属栏目:Java 来源:网络整理
导读:我想在每个元音之前插入“OB”.我试过下面的代码: String out=txt.toUpperCase();out=out.replaceAll("A","OBA");out=out.replaceAll("E","OBE");out=out.replaceAll("I","OBI");out=out.replaceAll("O","OBO");out=out.replaceAll("U","OBU");out=out.repl
我想在每个元音之前插入“OB”.我试过下面的代码:

String out=txt.toUpperCase();

out=out.replaceAll("A","OBA");
out=out.replaceAll("E","OBE");
out=out.replaceAll("I","OBI");
out=out.replaceAll("O","OBO");
out=out.replaceAll("U","OBU");
out=out.replaceAll("Y","OBY");

当我使用上面的代码时,它将A替换为OBA,但是当将O替换为OBO时,它将替换原始文本中的O以及OBA中的O.
例如,对于“我不会”我想要输出“OBI WOBON’T”,而是它给出了“OBOBI WOBON’T”,因为来自第一行的OBI中的O被视为元音.

我需要一个解决方案,它不会取代加密中的新O.

解决方法

由于replaceAll采用正则表达式,因此您可以在替换字符串中使用对捕获元素的引用:

out=out.replaceAll("[AEIOUY]","OB$0");

> [AEIOUY]从AEIOUY列表中捕获单个字符
>替换字符串中的$0代表已捕获的字符.

这是一个demo.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读