Gibt es ein unsichtbares Zeichen, das nicht als Leerzeichen betrachtet wird?

Lesezeit: 3 Minuten

Benutzeravatar von CodeBlue
Code blau

Ich arbeite mit einem vorhandenen Framework, in dem ich ein bestimmtes Attribut auf leer setzen muss, wenn einige Bedingungen erfüllt sind. Leider erlaubt das Framework nicht, nur Leerzeichen auf den Attributwert zu setzen. Insbesondere tut es a

!(org.apache.commons.lang.StringUtils.isBlank(value)) überprüfen Sie den Wert

Ist es möglich, dies irgendwie zu umgehen und einen Wert festzulegen, der für das Auge leer/unsichtbar aussieht, aber nicht als Leerzeichen betrachtet wird?

Ich benutze gerade einen Bindestrich “-“, aber ich denke, es wäre interessant zu wissen, ob es möglich ist.

  • Sie könnten überprüfen, wie es   behandelt, dh geschützte Leerzeichen.

    – Kayaman

    12. November 2013 um 17:54 Uhr


  • Ich würde das für einen extrem hässlichen Hack halten … verwenden Sie besser so etwas wie ein Bindestrich (-) um einen leeren Wert anzugeben.

    – Pawel Horal

    12. November 2013 um 17:55 Uhr

  • Ja, ich benutze gerade dash, aber ich dachte, das wäre eine interessante Frage.

    – Code blau

    12. November 2013 um 17:56 Uhr

  • Iteriere über alle möglichen Werte von char und prüfe. (Viel Glück)

    – Sotirios Delimanolis

    12. November 2013 um 17:56 Uhr


  • Wie wäre es mit U+1F4A9? Es ist nicht wirklich leer, aber ein guter Marker für keinen interessanten Inhalt…

    – Holger

    12. November 2013 um 18:39 Uhr

Es gibt auch (U+2800 BRAILLE PATTERN BLANK), bei dem es sich um einen leeren Brailleblock und nicht um ein Leerzeichen handelt.

  • omg… DAS! Du, mein Freund, bist ein Genie! Ich brauchte ein “Leerzeichen”, um eine Titelzeichenfolge nach links zu verschieben/ausrichten, aber mein UI-System lehnt stillschweigend alle Zeichen rechts von der Zeichenfolge ab, die den Unicode haben Whitespace_Property. Die oben/unten erwähnten Nicht-Whitespace_Property “Null-Breite”-Leerzeichen sind genau das – Null-Breite – und sind daher von null Hilfe. Auch würde ein Punkt nicht ausreichen oder irgendetwas, das klumpig aussehende Pixel druckt. Der Charakter, den Sie erwähnen, ist das einzige, was für mich funktioniert hat. Ich würde dich 10x upvoten, wenn ich könnte. DANKE SCHÖN!

    – Elektromade

    18. Januar 2020 um 5:43 Uhr

  • Hoppla, ich behebe einen Fehler in dem, was ich gerade geschrieben habe: Die Bezeichnung der Unicode-Leerzeichen heißt eigentlich the White_Space Eigentum. Hier beschrieben: unicode.org/reports/tr44/#White_Space

    – Elektromade

    18. Januar 2020 um 6:16 Uhr

  • hier, weil ich Emoji-Grafiken in einer WhatsApp-Nachricht erstellen wollte und WhatsApp Leerzeichen aus der ersten Zeile der Nachricht entfernt … 🙃 Das hat funktioniert! 😁💖

    – Georg WS

    4. Dezember 2020 um 7:39 Uhr

  • Dies funktionierte für mich unter iOS, wo ZERO WIDTH SPACE immer noch automatisch getrimmt wurde. Hilfreich für Hacky-Fixes zum schrägen Beschneiden von Schriftarten in systemeigenen Ansichten wie Navigationsleistentiteln.

    – Nathan Hosselton

    3. Mai 2021 um 20:35 Uhr

Benutzeravatar von Michael Konietzka
Michael Konietzka

Versuchen Unicode-Zeichen „ZERO WIDTH SPACE“ (U+200B). Es ist kein Whitespace gem WP: Leerzeichen#Unicode

Der Code von StringUtils.isBlank wird es nicht stören:

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;
  }

  • Das ist ein äußerst nützlicher Charakter, den man kennen sollte, danke. (Anmeldeformulare mit erforderlichem Nachnamen etc.)

    – Tobi

    11. August 2017 um 12:49 Uhr

Benutzeravatar von Bugs Bunny
Bugs Bunny

Das von Michael Konietzka geteilte Unicode-Zeichen ‘ZERO WIDTH SPACE’ (U+200B) funktionierte bei mir nicht, fand aber ein anderes, das funktionierte:

‏‏‎ ‎

Es identifiziert sich tatsächlich als Kombination von

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]

und sein ASCII-Wert ist 8207

‏‏‎'‏‏‎ ‎'.charCodeAt(0) // 8207

Quelle: http://emptycharacter.com/

  • 8207 kann ein Tippfehler sein; überprüfen Sie bitte emptycharacter.com Sollte 8287 sein, wie es für mich funktioniert hat

    – Jayanta

    21. November 2020 um 8:27 Uhr

Benutzeravatar von Jayanta
Jayanta

JavaScripts

String.fromCharCode(8287).repeat(30)

gab mir echte, aber unsichtbare Räume.

http://emptycharacter.com/ great

1449730cookie-checkGibt es ein unsichtbares Zeichen, das nicht als Leerzeichen betrachtet wird?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy