Le code a besoin dépend de ce que vous entendez par « un espace vide ».
Si vous voulez parler ASCII/Latin-1/caractère d'espace Unicode (0x20) alias SP, puis:
if (ch == ' ') {
// ...
}
Si vous voulez dire l'un des caractères blancs traditionnels ASCII (SP, HT , VT, CR, NL), puis:
if (ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n' || ch == '\x0b') {
// ...
}
Si vous voulez dire un caractère Unicode des espaces, puis:
if (Character.isWhitespace(ch)) {
// ...
}
Notez qu'il existe des espaces Unicode comprend supplémentaires codes de contrôle ASCII, et d'autres caractères Unicode dans des plans de code supérieur; voir le javadoc pour Character.isWhitespace(char)
.
Qu'est-ce que vous avez écrit était le suivant:
if (Equals(ch, " ")) {
// ...
}
Ceci est faux sur plusieurs niveaux. Premièrement, la façon dont le compilateur Java essaie d'interpréter cela est comme un appel à une méthode avec une signature de boolean Equals(char, String)
.
- Ceci est incorrect car aucune méthode n'existe, comme le compilateur indiqué dans le message d'erreur.
Equals
ne serait normalement pas le nom d'une méthode de toute façon. La convention Java est que les noms de méthodes commencent par une lettre minuscule.
- Votre code (comme écrit) essayait de comparer un caractère et une chaîne, mais
char
et String
ne sont pas comparables et ne peuvent pas être converties en un type de base commun.
Il y a une telle chose comme un Comparator en Java, mais il est une interface pas une méthode, et elle est déclarée comme ceci:
public interface Comparator<T> {
public int compare(T v1, T v2);
}
En d'autres termes, le nom de la méthode est compare
(pas Equals
), il renvoie un entier (pas un booléen), et il compare deux valeurs qui peuvent être promus au type donné par le paramètre de type.
Quelqu'un (! Dans supprimé réponse) a dit qu'ils ont essayé ceci:
if (c == " ")
qui échoue pour deux raisons:
" "
est une chaîne littérale et non un caractère littéral , et Java ne permet pas la comparaison directe des valeurs String
et char
.
Vous ne devez JAMAIS comparer des chaînes de caractères ou des chaînes de caractères à l'aide de ==
. L'opérateur ==
sur un type de référence compare l'identité de l'objet, pas la valeur de l'objet.Dans le cas de String
, il est courant d'avoir différents objets avec une identité différente et la même valeur. Un test ==
donnera souvent la mauvaise réponse ... du point de vue de ce que vous essayez de faire ici.
* espace vide * - un '' '' sans contenu? –