首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Commons StringEscapeUtils.unescapeCsv不删除引号

Commons StringEscapeUtils.unescapeCsv不删除引号
EN

Stack Overflow用户
提问于 2016-04-04 09:18:03
回答 1查看 1K关注 0票数 0

"StringEscapeUtils.unescapeCsv“的定义说它删除了双引号,但在我的例子中,它什么也不做。

代码语言:javascript
复制
String value = StringEscapeUtils.unescapeCsv(a[1]  );

(1=“\”调用我们“”,其结果值为“\”调用我们“”)

如果您不相信调试器屏幕,请查看它。这只是个窃听器吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-06 10:30:29

这不是窃听器。它的工作与预期完全一致。文档指出:

如果该值以双引号括起来,并且包含逗号、换行符或双引号,则将移除引号。

这意味着在以下情况下删除了周围的双引号:

代码语言:javascript
复制
StringEscapeUtils.unescapeCsv("\"Call \n us!\""); // -> Call \n us!
StringEscapeUtils.unescapeCsv("\"Call, us!\"");   // -> Call, us!
StringEscapeUtils.unescapeCsv("\"Call \" us!\""); // -> Call " us!

但是,就您的情况而言,以下情况是正确的:

如果该值没有用双引号括起来,或者不包含逗号、换行符或双引号,则返回的字符串值不变。

这意味着不移除周围的双引号:

代码语言:javascript
复制
StringEscapeUtils.unescapeCsv("\"Call us!\""); // -> "Call us!"

与其依赖String.split()StringEscapeUtils.unescapeCsv(),不如使用适当的CSV解析器,比如Apache Commons CSV

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36398715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档