在java字符串中将\\u替换为\u

在java字符串中将\\u替换为\u,java,string,Java,String,我有一个字符串,其中包含普通文本和Unicode,例如“abc\ue415abc”。 我想用\u替换所有出现的\\u。我怎样才能做到这一点? 我使用了以下代码,但它不能正常工作 String s = "aaa\\u2022bbb\\u2014ccc"; StringBuffer buf = new StringBuffer(); Matcher m = Pattern.compile("\\\\u([0-9A-Fa-f]{4})").matcher(s); while (m.find()) {

我有一个字符串,其中包含普通文本和Unicode,例如“abc\ue415abc”。 我想用
\u
替换所有出现的
\\u
。我怎样才能做到这一点? 我使用了以下代码,但它不能正常工作

String s = "aaa\\u2022bbb\\u2014ccc";
StringBuffer buf = new StringBuffer();
Matcher m = Pattern.compile("\\\\u([0-9A-Fa-f]{4})").matcher(s);
while (m.find()) {
    try {
        int cp = Integer.parseInt(m.group(1), 16);
        m.appendReplacement(buf, "");
        buf.appendCodePoint(cp);
    } catch (NumberFormatException e) {
    }
}
m.appendTail(buf);
s = buf.toString();
请帮忙。提前感谢。

试试这个:

s = s.replace(s.indexOf("\\u"), "\u");

字符串中有
包含
方法和
替换
方法。话虽如此

String hello = "hgjgu\udfgyud\\ushddsjn\hsdfds\\ubjn";

if(hello.contains("\\u"))
    hello.replace("\\u","\u");

System.out.println(hello);
它将打印:-hgjgu\udfgyud\ushdsjn\hsdfds\ubjn来自API参考:java.lang.CharSequence)

你可以使用public

public String replace (CharSequence target, CharSequence replacement)
string = string.replace("\\u", "\u");

or

String replacedString = string.replace("\\u", "\u");

实际上,您的初始字符串没有任何双反斜杠

String s = "aaa\\u2022bbb\\u2014ccc";
生成一个包含
aaa\u2022bbb\u2014ccc
的字符串,因为
\
只是
\
的java字符串文本转义

如果需要unicode字符:(StackOverflow21028089.java)

=>

如果您想要
aaa\u2022bbb\u2014ccc
,这就是您开始的地方。如果要以
aaa\\u2022bbb\\u2014ccc
开头的字符串文字,则如下所示:

String s = "aaa\\\\u2022bbb\\\\u2014ccc";
将其转换为带有单斜杠的代码可以像@Overv的代码一样简单:

s = s.replaceAll("\\\\u", "\\u");
尽管反斜杠在正则表达式模式和替换中有特殊的含义(参见)(除了java解析之外),但它可能是:

s = s.replaceAll("\\\\\\\\u", "\\\\u");
=>


它不工作,您好。替换(“\\u”,“\u”);给出含有番石榴的无效UnicodeWith错误:String str=CharMatcher.anyOf(“\\u”).replaceFrom(yourString,“\u”);很高兴为您提供帮助!
s = s.replaceAll("\\\\u", "\\u");
s = s.replaceAll("\\\\\\\\u", "\\\\u");
aaa\u2022bbb\u2014ccc