是否有一个不被视为空白的隐形字符?

时间:2013-11-12 17:52:02

标签: java whitespace

我正在使用现有框架,如果满足某些条件,我必须将某个属性设置为空白。不幸的是,框架不允许仅为属性值设置空格。具体来说,它做了

!(org.apache.commons.lang.StringUtils.isBlank(value))检查值

是否有可能以某种方式绕过这个并设置一个看起来空白/不可见的值但不被视为空白的值?

我现在正在使用短划线“ - ”,但我认为知道它是否有可能会很有趣。

5 个答案:

答案 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

  

来源:http://emptycharacter.com/

答案 2 :(得分:0)

还有(U + 2800 BRAILLE PATTERN BLANK),它是空白的盲文块,而不是空格字符。

答案 3 :(得分:0)

http://emptycharacter.com/很好

对我来说是JS String.fromCharCode(8287).repeat(30) 给了我真实却看不见的空间

答案 4 :(得分:-1)

您只需复制:{ }