Der Code, den Sie benötigen, hängt davon ab, was Sie unter "leerem Raum" verstehen.
Wenn Sie das ASCII / Latin-1 / Unicode-Leerzeichen (0x20) oder SP meinen, dann:
if (ch == ' ') {
// ...
}
Wenn Sie eines der traditionellen ASCII-Leerzeichen (SP, HT, VT, CR, NL) meinen, dann:
if (ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n' || ch == '\x0b') {
// ...
}
Wenn Sie ein Unicode-Leerzeichen meinen, dann:
if (Character.isWhitespace(ch)) {
// ...
}
Beachten Sie, dass es Unicode-Leerzeichen gibt, die zusätzliche ASCII-Steuercodes und einige andere Unicode-Zeichen in höheren Codeebenen enthalten. siehe den Javadoc für Character.isWhitespace(char)
.
Was Sie geschrieben haben, war Folgendes:
if (Equals(ch, " ")) {
// ...
}
Dies ist auf mehreren Ebenen falsch. Erstens ist die Art und Weise, wie der Java-Compiler versucht, dies als Aufruf einer Methode mit der Signatur von zu interpretieren boolean Equals(char, String)
.
- Dies ist falsch, da keine Methode vorhanden ist, wie der Compiler in der Fehlermeldung gemeldet hat.
Equals
wäre normalerweise sowieso nicht der Name einer Methode. Die Java-Konvention besagt, dass Methodennamen mit einem Kleinbuchstaben beginnen.
- Ihr Code (wie geschrieben) wurde versucht , einen Charakter und einen String zu vergleichen, aber
char
und String
ist nicht vergleichbar und kann nicht auf einen gemeinsamen Basistyp umgewandelt werden.
Es gibt so etwas wie einen Komparator in Java, aber es ist eine Schnittstelle, keine Methode, und es wird wie folgt deklariert:
public interface Comparator<T> {
public int compare(T v1, T v2);
}
Mit anderen Worten, der Methodenname ist compare
(nicht Equals
), er gibt eine Ganzzahl (kein Boolescher Wert) zurück und vergleicht zwei Werte, die auf den durch den Typparameter angegebenen Typ heraufgestuft werden können.
Jemand (in einer gelöschten Antwort!) Sagte, er habe Folgendes versucht:
if (c == " ")
Das scheitert aus zwei Gründen:
" "
ist ein String-Literal und kein Zeichenliteral, und Java erlaubt keinen direkten Vergleich von String
und char
Werten.
Sie sollten NIEMALS Strings oder String-Literale mit vergleichen ==
. Der ==
Operator eines Referenztyps vergleicht die Objektidentität und nicht den Objektwert. Im Falle String
ist es üblich, unterschiedliche Objekte mit unterschiedlicher Identität und gleichem Wert zu haben. Ein ==
Test gibt oft die falsche Antwort ... aus der Perspektive dessen, was Sie hier versuchen.
' '
ohne Inhalt?