Java String 将 '&' 替换为 & 而不是 & 到 &

Posted

技术标签:

【中文标题】Java String 将 \'&\' 替换为 & 而不是 & 到 &【英文标题】:Java String Replace '&' with & but not & to &Java String 将 '&' 替换为 & 而不是 & 到 & 【发布时间】:2014-10-22 23:55:01 【问题描述】:

我有一个大字符串,其中 & 字符可用于以下模式 -

A&B
A & B
A& B
A &B
A&B
A & B
A& B
A &B

我想将所有出现的 & 字符替换为 & 在替换它时,我还需要确保我不会错误地将& 转换为&。我如何以精通性能的方式做到这一点?我使用正则表达式吗?如果是,请您帮我挑选正确的正则表达式来执行上述操作吗?

到目前为止,我一直没有高兴地尝试过:

data = data.replace(" & ", "&"); // doesn't replace all &
data = data.replace("&", "&");   // replaces all &, so & becomes &

【问题讨论】:

您可以将所有& 更改为&,然后将所有& 更改为& 你是否有其他转义字符,例如  【参考方案1】:

您可以使用带有负前瞻的正则表达式

正则表达式字符串为&(?!amp;)

使用replaceAll,你会得到:

A&B
A & B
A& B
A &B
A&B
A & B
A& B
A &B

所以单个字符串str 的代码将是:

str.replaceAll("&(?!amp;)", "&");

【讨论】:

例如,您可以使用&(?![a-z]1,6;),这样• 就不会变成•【参考方案2】:

你可以试试这个,应该可以的:

data = data.replaceAll("&","&").replaceAll("&","&");

这样,您首先将所有& 替换为&,因此您将拥有&,然后将它们全部替换为&

【讨论】:

以上是关于Java String 将 '&' 替换为 & 而不是 & 到 &的主要内容,如果未能解决你的问题,请参考以下文章

c#替换文件中的字符串

JAVA基础 String包装类下 .replace方法的使用以及char和字符序列的使用场景

编写一个java程序,实现将数组arr中索引位置是2的元素替换为bb,并将替换前数组中的元素和替换

java中的String类

C#字符串替换为字典

c++ string详解 assign