Gibt es ein unsichtbares Zeichen, das nicht als Leerzeichen betrachtet wird?
Lesezeit: 3 Minuten
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.
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
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]
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