我收到了来自排队服务的消息,我认为这是一个UTF-8编码的字符串。它原来是一个字符串中引用和转义的字符串。也就是说,字符串本身的第一个字符和最后一个字符是"
,每个换行符是两个字符\n
,引号(因为这是XML很多)是\"
,而外语中的单个UTF-8字符表示为六个字符,\uABCD
)。我知道我可以通过滚动我自己的方式解开所有这些,但我认为必须有可以做到这一点的方法组合。这个咒语可能是什么?在字符串中展开字符串
2
A
回答
0
从@JonSkeet和@ njzk2反馈后,我想出了这个,它的工作:
// gradle: 'org.apache.commons:commons-lang3:3.3.2'
import org.apache.commons.lang3.StringEscapeUtils;
String s = serviceThatSometimesReturnsQuotedStringWithinString();
String usable = null;
if (s.length() > 0 && s.charAt(0) == '"' && s.charAt(s.length()-1) == '"') {
usable = StringEscapeUtils.unescapeEcmaScript(s.substring(1, s.length()-1));
} else {
usable = s;
}
+0
我也应该赞扬这篇文章:http://stackoverflow.com/questions/9359660/json-replace-quotes-and-slashes-but-by-what – gknauth 2014-12-05 17:00:45
相关问题
- 1. 在Ruby中展开一串字符串
- 2. “展开”的字符串
- 3. 不串联展开字符串
- 4. 使用多个子字符串展开字符串
- 5. 展开宏内部字符串字面
- 6. 字符串以空字符串开头(“”)
- 7. 在Python中展开字符串列表和字符串列表以及列表
- 8. 如何在C#中表示(字符串,字符串[],字符串[])#
- 9. 在字符串中插入字符串
- 10. 在字符串中获取字符串
- 11. 在字符串中插入字符串
- 12. 在字符串中查找字符串
- 13. 在字符串中剪切字符串
- 14. 在字符串中存储字符串
- 15. 在字符串中查找字符串
- 16. 展开字符串中的所有环境变量(格式字符串)
- 17. 字符串在字符串字面
- 18. 解开字符串
- 19. 的Perl:字符串中子字符串或子字符串中
- 20. 字符串扩展正在改变顺序或字符串
- 21. C字符串字符串
- 22. C++字符串!=字符串
- 23. 字符串字符串
- 24. Java字符串[]字符串[]
- 25. 字符串到字符串
- 26. 用控制字符展开C#字符串
- 27. 匹配字符串中的字符串以强调字符串
- 28. 如何在字符串的字符串处插入字符串?
- 29. 字符串SomeLongString = JavaAPIMethodFor(字符串[]字符串,字符串分隔符)
- 30. 创建词典<字符串,字符串>分开字符串
[HOWTO UNESCAPE一个Java字符串字面量在Java中(可能重复http://stackoverflow.com/问题/ 3537706/howto-unescape-a-java-string-literal-in-java) – njzk2 2014-12-05 16:16:19
它实际上只是JSON吗?如果是这样,请使用JSON解析器。 – 2014-12-05 16:16:25
@JonSkeet这不是JSON。绝对XML内容,逃脱。 – gknauth 2014-12-05 16:18:55