web-dev-qa-db-de.com

Leerzeichen in java

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.

12
mkounal
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);
10
JB Nizet

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.
18
Mark Byers
2

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.

2
Nicktar

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
}
1
James
boolean whitespaceSearchRegExp(String input) {

    return Java.util.regex.Pattern.compile("\\s").matcher(input).find();

} 
0
doxmoxbox

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.

0
MByD