如何摆脱java中的#011个字符

时间:2017-12-14 10:30:45

标签: java

当我通过JMSQ获取内容时,我收到了这个字符串。打印时我看到以下行。我看到这些是XML中的垂直制表符。但是我该如何摆脱它们呢。

       #011#011#011<xeh:eid>dljfl</xeh:eid>

我试过了

       replaceAll("[\\x0B]", "");

但它不起作用。

3 个答案:

答案 0 :(得分:2)

"#011#011#011<xeh:eid>dljfl</xeh:eid>".replaceAll("#011", "")工作正常,结果为<xeh:eid>dljfl</xeh:eid>

根据Pattern javadoc\xhh代表“十六进制值为0xhh的字符”。但我想在你的字符串文字中,#011只是字面字符。

如果我尝试复制字符串文字中的垂直标签,则可以使用\\x0B

"\u000b\u000b\u000b<xeh:eid>dljfl</xeh:eid>".replaceAll("\\x0B", "")

但也许我们读错了。虽然#0B是11,但#11可能是17 ......

答案 1 :(得分:2)

这样做:

    String a = "#011#011#011<xeh:eid>dljfl</xeh:eid>";
    String a_wo_vt_chars = a.replaceAll("#011", "");

答案 2 :(得分:1)

当#011表示char的十六进制值时,您可以使用

a.replaceAll("\\u0011", "");
// or
a.replaceAll("\\x11", "");

但如果#011代表八进制值,则使用

a.replaceAll("\\011", "")

另见Unicode Regular Expressions