如何在java中去掉#011个字符

如何在java中去掉#011个字符,java,Java,当我通过JMSQ获得内容时,我得到了这个字符串。在打印时,我看到下面一行。我看到这些是XML中的垂直制表符。但我该如何摆脱它们呢 #011#011#011<xeh:eid>dljfl</xeh:eid> 但它不起作用。“#011#011#011dljfl”。replaceAll(#011“,”)工作正常,结果是dljfl 根据\xhh表示“十六进制值为0xhh的字符”。但我猜在字符串literal中,#011只是文字字符 如果我尝试以字符串文字复制垂直选

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

       #011#011#011<xeh:eid>dljfl</xeh:eid>
但它不起作用。

“#011#011#011dljfl”。replaceAll(#011“,”)
工作正常,结果是
dljfl

根据\xhh表示“十六进制值为0xhh的字符”。但我猜在字符串literal中,
#011
只是文字字符


如果我尝试以字符串文字复制垂直选项卡,它将与
\\x0B
一起工作:

"\u000b\u000b\u000b<xeh:eid>dljfl</xeh:eid>".replaceAll("\\x0B", "")
“\u000b\u000b\u000bdljfl”.replaceAll(“\\x0B”,”)
但也许我们看错了。虽然#0B是11,但#11可能是17…

只需执行以下操作:

    String a = "#011#011#011<xeh:eid>dljfl</xeh:eid>";
    String a_wo_vt_chars = a.replaceAll("#011", "");
String a=“#011#011#011dljfl”;
字符串a_wo_vt_chars=a.replaceAll(“#011”,”);
当#011表示可以使用的字符的十六进制值时

a.replaceAll("\\u0011", "");
// or
a.replaceAll("\\x11", "");
但如果#011表示八进制值,则使用

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

另请参见

是的,这是java Strings。您是否考虑过
a.replaceAll(“#011”,”)
?我做了更多的编辑。
replaceAll(“#011”,”)
@naren你能创建一个十六进制转储的(子)字符串,这样我们就可以清楚地看到你指的是哪个字符了吗?(例如,对于
数组.toString(“…”.getBytes(“UTF-8”))
)这根本不起作用,我的意思不是字面意义上的#011,我已经修改了这个问题#011是4个字符,但我们在打印时看到的是一个ascii值为11的字符,这是垂直制表符,我们需要替换它,那些降级的人应该考虑一下。也许他们降级是因为你没有提供必要的信息。好的,我将牢记这一点,并从现在起首先提供有效信息。不,我粘贴的评论与我在上述帖子中所做的相同,我并不是字面上的“011”,我已经修改了问题#011是4个字符,但我们在打印时看到的是一个ascii值为11的字符,这是垂直制表符,我们需要替换它,那些正在向下移动的人应该考虑一下这一点。@naren然后你需要向我们解释你所说的打印是什么意思。当我使用
System.out.println(a.replaceAll(“#011“,”)
时,它会正确地删除序列。你这方面有什么不同。不,我是通过JMS获取消息的,当我打印消息时,我会看到这些#011个字符,如果你将它们显式地分配给一个字符串,那么它们是4个字符#0 1 1,我相信#011是一个单独的字符,代表我得到的xml中的垂直选项卡。现在我得到了它。因此,该字符串不是字符串文字。K、 你试过
“\\x0B”
而不是
“[\\x0B]”
?你说得对,老板,我得到的是八进制值,到目前为止我试着把它当作十进制。谢谢,现在它正在a.replaceAll(\\011,“”)中工作
a.replaceAll("\\011", "")