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

Cod*_*lue 19 java whitespace

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

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

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

我现在正在使用短划线" - ",但我认为知道这是否有可能会很有趣.

M. *_*ght 30

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

  • 天哪...这个!你,我的朋友,是个天才!我需要一个“空白字符”来将标题字符串向左移动/对齐,但我的 UI 系统默默地拒绝字符串右侧具有 unicode `Whitespace_Property` 的任何字符。上面/下面提到的非 Whitespace_Property“零宽度”空格字符只是零宽度,所以帮助为零。一个点或任何打印出看起来很糟糕的像素的东西也不够。你提到的角色是唯一对我有用的东西。如果可以的话,我会给你 10 倍的支持。谢谢你! (8认同)
  • 哎呀,修复了我刚刚写的错误:Unicode 空白字符名称实际上称为“White_Space”属性。此处描述:http://www.unicode.org/reports/tr44/#White_Space (3认同)
  • 这在 iOS 上对我有用,其中零宽度空间仍然被自动修剪。有助于对系统拥有的视图(如导航栏标题)中的倾斜字体剪辑进行黑客修复。 (3认同)
  • 这里是因为我想在 WhatsApp 消息中创建表情符号艺术作品,而 WhatsApp 会修剪消息第一行的空格……这成功了! (2认同)

Mic*_*zka 23

尝试Unicode字符'ZERO WIDTH SPACE'(U + 200B).根据WP:Whitespace#Unicode,它不是空白

StringUtils.isBlank的代码不会打扰它:

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;
  }
Run Code Online (Sandbox Code Playgroud)

  • 知道这是一个非常有用的角色,谢谢.(注册表格带有必填的姓氏等) (4认同)

Bug*_*nny 6

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]
Run Code Online (Sandbox Code Playgroud)

它的 ASCII 值是 8207

???'??? ?'.charCodeAt(0) // 8207

来源:http : //emptycharacter.com/