在Java中引用字符串

时间:2013-01-15 16:44:23

标签: java string

有没有人知道要使用引号转义和包围对象的字符串值的库函数,除非它是null?

例如,该函数应处理:

  • "hello""\"hello\""
  • null"null"
  • Long.valueOf(2L)"\"2\""
  • """\"\""
  • "I\'m \"quoted\"""\"I\\\'m \\\"quoted\\\""

显然,这在Java中实现是微不足道的,但我正在寻找现有库中的函数(例如JDK,Commons Lang,Spring ......)如果以前没有这样做,我会感到惊讶。

供参考,这是为了将对象转换为JavaScript字符串。

2 个答案:

答案 0 :(得分:0)

您可以使用StringUtils编写自己的。

import static org.apache.commongs.lang.StringUtils.*;
import org.apache.commons.lang.StringEscapeUtils.*;

public void quote(String x) {
  return escapeJavaScript(defaultString(x, "null").replaceFirst("^(.*)$", "\"$1\"")));
}

答案 1 :(得分:0)

您的要求是

  • 带引号的环绕声输出
  • 逃脱报价
  • 处理null个不同的(没有周围的引号)

我不知道任何满足您要求的图书馆方法。

无论如何,它可以用一行方法实现:

public static String quoteAndEscape(Object o) {
    return o == null ? "null" : "\"" + StringEscapeUtils.escapeJava(String.valueOf(o)) + "\"";
}