有没有人知道要使用引号转义和包围对象的字符串值的库函数,除非它是null?
例如,该函数应处理:
"hello"
为"\"hello\""
null
为"null"
Long.valueOf(2L)
为"\"2\""
""
为"\"\""
"I\'m \"quoted\""
为"\"I\\\'m \\\"quoted\\\""
显然,这在Java中实现是微不足道的,但我正在寻找现有库中的函数(例如JDK,Commons Lang,Spring ......)如果以前没有这样做,我会感到惊讶。
供参考,这是为了将对象转换为JavaScript字符串。
答案 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)) + "\"";
}