gpt4 book ai didi

java - 删除不可打印的字符

转载 作者:行者123 更新时间:2023-12-01 15:13:16 25 4
gpt4 key购买 nike

我在数据库中有一个列包含不可打印的字符;

String xyz = "Company Name\r\n Magna";

从数据库中检索后,在java中,值如下所示

String companyname = "Company Name\\r\\n Magna";"

它添加了一个额外的转义字符。我现在如何删除不可打印的字符?

companyname.replaceAll("\\p{Cntrl}", ""); // Doesn't work.

即使我使用StringBuffer,由于额外的转义字符,它也不会工作。

请指教。

最佳答案

在将数据放入数据库之前对数据进行编码的方式似乎给自己带来了问题。

在第一个实例中,需要一个 replaceAll 来替换字符序列 '\' 'r''\' 'n' ;例如

text = text.replaceAll("\\\\r|\\\\n", "");

请注意,为了匹配文字反斜杠字符,必须将它们转义两次。一次用于字符串文字,第二次是因为反斜杠是正则表达式中的元字符。

但是,IMO,更好的解决方法是不在数据库中以这种方式编码 CR 和 NL 字符。难道你不能只在数据库中表示它们而不转义吗?

关于java - 删除不可打印的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12014550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com