Код, который вам нужен, зависит от того, что вы подразумеваете под «пустым пробелом».
Если вы имеете в виду символ пробела ASCII / Latin-1 / Unicode (0x20) или SP,затем:
if (ch == ' ') {
// ...
}
Если вы имеете в виду какие-либо традиционные пробельные символы ASCII (SP, HT, VT, CR, NL), то:
if (ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n' || ch == '\x0b') {
// ...
}
Если вы имеете в виду любой символ пробела Unicode, то:
if (Character.isWhitespace(ch)) {
// ...
}
Обратите внимание, что пробел Unicode включает в себя дополнительные ASCII управляющие коды, и некоторые другие символы Юникода в более высоких плоскостях кода;см. javadoc для Character.isWhitespace(char)
.
То, что вы написали, было так:
if (Equals(ch, " ")) {
// ...
}
Это неправильно на ряде уровней.Во-первых, способ, которым компилятор Java пытается интерпретировать это как вызов метода с сигнатурой boolean Equals(char, String)
.
- Это неправильно, потому что метод не существует, поскольку компилятор сообщил в сообщении об ошибке.
Equals
обычно не будет именем метода в любом случае.Соглашение Java заключается в том, что имена методов начинаются со строчной буквы. - Ваш код (как написано) пытался сравнить символ и строку, но
char
и String
не сопоставимы и не могут быть сопоставленыприведение к общему базовому типу.
В Java есть такая вещь, как Comparator, но это интерфейс, а не метод, и он объявлен так:
public interface Comparator<T> {
public int compare(T v1, T v2);
}
Другими словами, имя метода - compare
(не Equals
), оно возвращает целое число (не логическое) и сравнивает два значения, которые можно повысить до типа, заданного параметром типа.
Кто-то (в удаленном ответе!) Сказал, что пытался это:
if (c == " ")
Это не удалось по двум причинам:
" "
является строковым литералом, а не символьным литералом, и Java не допускает прямого сравнения значений String
и char
.
Вы НИКОГДА не должны сравнивать строковые или строковые литералы, используя ==
.Оператор ==
для ссылочного типа сравнивает идентичность объекта, а не значение объекта.В случае String
обычно используются разные объекты с разной идентичностью и одинаковым значением.==
тест часто дает неправильный ответ ... с точки зрения того, что вы пытаетесь сделать здесь.