有没有人有一个简单的工具可以将非转义字符串转换为转义字符串?
例如,我正在尝试将以下数据粘贴到Java String数据类型中:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
我手动添加斜杠:
<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>
然后我可以粘贴到我的java代码中:
String xml="<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
当它是一个3MB的字符串时,添加斜杠会非常烦人。我知道find / replace可以在很多工具中工作,但我经常这样做,所以我需要更快的方法。
这一定是一个常见问题。大多数开发人员做了什么?我认为一个好的Emacs宏可以做到这一点,但我没有看到任何明显的东西。
答案 0 :(得分:3)
如果它是3MB字符串,我会从文件中读取它,而不是在源代码中对其进行硬编码。
答案 1 :(得分:2)
正则表达式。
s/(?=["\\])/\\/g
您可以使用要转义的任何其他字符填写字符类。
答案 2 :(得分:2)
例如,调用以下命令将最近杀死/保存/剪切的文本作为转义字符串插入/粘贴:
(defun yank-escaped-string () (interactive) (insert (prin1-to-string (substring-no-properties (current-kill 0)))))
请记住,转义机制用于生成Elisp读取的字符串,其约定可能类似于您的目标但不完全相同。
答案 3 :(得分:2)
答案 4 :(得分:0)
答案 5 :(得分:0)
为了支持@Mark Bayer的答案,这里有一个单行程序,用于将文件内容读入字符串。
String s = org.apache.commons.io.FileUtils.readFileToString("someFile");
这是Apache Commons FileUtils class的Javadoc。
您可以从头开始实现等效功能; e.g。
StringBuilder sb = new StringBuilder();
Reader r = new BufferedReader(new FileReader("somefile"));
try {
int ch;
while ((ch = r.read()) != -1) {
sb.append((char) ch);
}
} finally {
r.close();
}
String s = sb.toString();
将怪异的大字符串嵌入到源代码中......即使是丢弃测试......也是如此蹩脚。