Java - 正确格式化给定转义序列和转义字符的字符串

标签 java string escaping

给定换行符 (\n)、制表符 (\t) 和转义字符\,如何正确给出字符串格式,以便正确处理这些转义序列和转义字符。示例1:

"string \\t \t"

输出将是:

"string \t    "

因此在这种情况下\\t 被转义为\t 并且\t 被格式化为制表符

示例2:

"string \\t \n \\n"

输出为:

"string \t
\n"

我尝试了暴力解决方案,但它不起作用,因为我在用反斜杠分隔制表符和空格时遇到问题。

String v= "..." //v for value
v = v.replace("\\\"","\"");
v = v.replace("\\\\","\\");
v = v.replace("\\t", "  ");
v = v.replace("\\n", "\n");
v = v.replace("\\\t", "\\t");
v = v.replace("\\\n", "\\n");

如果我通过第一个示例运行该代码,它将给出:

"string         "

最佳答案

看起来您没有尝试过的一个“强力”组合是正确的

replace("\\t", "\t")

阅读“将所有<反斜杠>组合替换为

将它们串在一起得到

v = v.replace("\\t", "\t").replace("\\n", "\n")

(不需要单独替换\)

关于Java - 正确格式化给定转义序列和转义字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39858310/

相关文章:

vim:转义字符串以进行替换(vimscript)

java - 为什么我们需要使用 Context.obtainStyledAttributes 和 declare-styleable 来获取 GUI 组件的属性

java - Hibernate 4 注释配置

java - 只传递java中的有效字符

c - 当 C 中需要 unsigned int 时,将字符串传递给函数

c - 在C语言中,如何获取两个括号之间的字符串?

java - Camel CXF : How can I change the namespace of my incoming message?

java - 当我的编译器告诉我正在使用不安全或未经检查的操作时,这意味着什么?

javascript - 从输入字段读取属性时 HTML 编码丢失

ruby-on-rails - 如何防止构建器模板转义属性值中的 URL?