Was sind Arten von Leerzeichen in Java? Ich muss meinen Code einchecken, wenn der Text Leerzeichen enthält.
Mein Code ist:
if (text.contains(" ") || text.contains("\t") || text.contains("\r")
|| text.contains("\n"))
{
//code goes here
}
Ich weiß bereits über \n
, \t
, \r
und space
.
boolean containsWhitespace = false;
for (int i = 0; i < text.length() && !containsWhitespace; i++) {
if (Character.isWhitespace(text.charAt(i)) {
containsWhitespace = true;
}
}
return containsWhitespace;
oder mit Guave
boolean containsWhitespace = CharMatcher.WHITESPACE.matchesAnyOf(text);
Bei einem Ansatz mit nicht regulären Ausdrücken können Sie Character.isWhitespace
für jedes Zeichen aktivieren.
boolean containsWhitespace(String s) {
for (int i = 0; i < s.length(); ++i) {
if (Character.isWhitespace(s.charAt(i)) {
return true;
}
}
return false;
}
Welches sind die Leerzeichen in Java?
In der Dokumentation wird angegeben, was Java als Leerzeichen betrachtet wird:
public static boolean isWhitespace(char ch)
Legt fest, ob das angegebene Zeichen gemäß Java ein Leerzeichen ist. Ein Zeichen ist genau dann ein Java Whitespace-Zeichen, wenn es eines der folgenden Kriterien erfüllt:
- Es handelt sich um ein Unicode-Leerzeichen (SPACE_SEPARATOR, LINE_SEPARATOR oder PARAGRAPH_SEPARATOR), es handelt sich jedoch nicht um ein nicht unterbrechendes Leerzeichen ('\ u00A0', '\ u2007', '\ u202F').
- Es ist
'\u0009'
, Horizontale Tabelle.- Es ist
'\u000A'
, LINE FEED.- Es ist
'\u000B'
, VERTIKALE TABELLE.- Es ist
'\u000C'
, FORM FEED.- Es ist
'\u000D'
, CARRIAGE RETURN.- Es ist
'\u001C'
, DATEI-SEPARATOR.- Es ist
'\u001D'
, GROUP SEPARATOR.- Es ist
'\u001E'
, RECORD SEPARATOR.- Es ist
'\u001F'
, UNIT SEPARATOR.
Verwenden Sie Character.isWhitespace () , anstatt Ihre eigenen zu erstellen.
In Java wie verwandelt man einen String in ein Zeichen oder ein Zeichen in einen String?
Wenn Sie Apache.commons.lang in Ihrem Projekt verwenden können, ist es am einfachsten, die dort bereitgestellte Methode zu verwenden:
public static boolean containsWhitespace(CharSequence seq)
Überprüfen Sie, ob die angegebene Zeichenfolge Leerzeichen enthält.
Parameter:
seq - the CharSequence to check (may be null)
Kehrt zurück:
true if the CharSequence is not empty and contains at least 1 whitespace character
Es behandelt leere und leere Parameter und bietet die Funktionalität an zentraler Stelle.
Wenn Sie eine Methode in Betracht ziehen möchten, die auf regulären Ausdrücken basiert
if(text.split("\\s").length > 1){
//text contains whitespace
}
boolean whitespaceSearchRegExp(String input) {
return Java.util.regex.Pattern.compile("\\s").matcher(input).find();
}
Warum überprüfst du nicht, ob text.trim () eine andere Länge hat? :
if(text.length() == text.trim().length() || otherConditions){
//your code
}
Von Sun docs :
\ s Ein Leerzeichen: [\ t\n\x0B\f\r]
Der einfachste Weg ist, es mit Regex zu verwenden.