gpt4 book ai didi

java - 打印带有转义不可打印字符的字符串

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:28:29 24 4
gpt4 key购买 nike

我有这个字符串

String x="String containning special chars  \u202C \n  \u202C  \u202C  \u202C";

我怎样才能打印出这个:String containing special chars\u202C\n\u202C\u202C\u202C ?

尝试过

System.out.println(x.replace("\\","\\\\"));

但这只会打印 String containing special chars\n

也试过

String out = org.apache.commons.lang3.StringEscapeUtils.unescapeJava(x);
System.out.println(out);

但这也无济于事。

谁有我不知道的建议或 API?

更新 - 解决方案

在@lbear aproach 之后,我想出了这个函数来处理大多数转义字符串的情况

public static String removeUnicodeAndEscapeChars(String input) {
StringBuilder buffer = new StringBuilder(input.length());
for (int i = 0; i < input.length(); i++) {
if ((int) input.charAt(i) > 256) {
buffer.append("\\u").append(Integer.toHexString((int) input.charAt(i)));
} else {
if (input.charAt(i) == '\n') {
buffer.append("\\n");
} else if(input.charAt(i) == '\t'){
buffer.append("\\t");
}else if(input.charAt(i) == '\r'){
buffer.append("\\r");
}else if(input.charAt(i) == '\b'){
buffer.append("\\b");
}else if(input.charAt(i) == '\f'){
buffer.append("\\f");
}else if(input.charAt(i) == '\''){
buffer.append("\\'");
}else if(input.charAt(i) == '\"'){
buffer.append("\\");
}else if(input.charAt(i) == '\\'){
buffer.append("\\\\");
}else {
buffer.append(input.charAt(i));
}
}
}
return buffer.toString();
}

最佳答案

Apache Commons StringEscapeUtils它具有 HTML 编码。这种编码非常接近您可能需要的

String escaped code = StringEscapeUtils.escapeHtml(rowId)

See doc

关于java - 打印带有转义不可打印字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17103660/

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