我正在使用现有框架,如果满足某些条件,我必须将某个属性设置为空白。不幸的是,框架不允许仅为属性值设置空格。具体来说,它做了
!(org.apache.commons.lang.StringUtils.isBlank(value))
检查值
是否有可能以某种方式绕过这个并设置一个看起来空白/不可见的值但不被视为空白的值?
我现在正在使用短划线“ - ”,但我认为知道它是否有可能会很有趣。
答案 0 :(得分:18)
试试Unicode Character 'ZERO WIDTH SPACE' (U+200B)。根据{{3}}
,它不是空白WP: Whitespace#Unicode的代码不会打扰它:
public static boolean isBlank(String str) {
int strLen;
if (str == null || (strLen = str.length()) == 0) {
return true;
}
for (int i = 0; i < strLen; i++) {
if ((Character.isWhitespace(str.charAt(i)) == false)) {
return false;
}
}
return true;
}
答案 1 :(得分:2)
迈克尔·科涅茨卡(Michael Konietzka)共享的Unicode字符“零宽度空间”(U + 200B)对我不起作用,但发现了另一个可以做到的事情:
它实际上标识为的组合
U+200F : RIGHT-TO-LEFT MARK [RLM]
U+200F : RIGHT-TO-LEFT MARK [RLM]
U+200E : LEFT-TO-RIGHT MARK [LRM]
U+0020 : SPACE [SP]
U+200E : LEFT-TO-RIGHT MARK [LRM]
它的ASCII值为8207
' '.charCodeAt(0) // 8207
答案 2 :(得分:0)
还有⠀
(U + 2800 BRAILLE PATTERN BLANK),它是空白的盲文块,而不是空格字符。
答案 3 :(得分:0)
对我来说是JS String.fromCharCode(8287).repeat(30) 给了我真实却看不见的空间
答案 4 :(得分:-1)
您只需复制:{ }