如何检查一个字符是否等于一个空格?
2022-08-31 09:07:57
以下是我得到的:
private static int countNumChars(String s) {
for(char c : s.toCharArray()){
if (Equals(c," "))
}
}
但是该代码说它找不到该方法的符号。我记得Java有一个这样的比较器...有什么建议吗?
以下是我得到的:
private static int countNumChars(String s) {
for(char c : s.toCharArray()){
if (Equals(c," "))
}
}
但是该代码说它找不到该方法的符号。我记得Java有一个这样的比较器...有什么建议吗?
if (c == ' ')
char
是一种基元数据类型,因此可以将其与 进行比较。==
此外,通过使用双引号,您可以创建常量(),而使用单引号,它是常量()。String
" "
char
' '
您需要的代码取决于您所说的“空白空间”的含义。
如果你指的是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控制代码,以及更高代码平面中的其他一些Unicode字符;请参阅 Character.isWhitespace(char)
的 javadoc。
你写的是这样的:
if (Equals(ch, " ")) {
// ...
}
这在很多层面上都是错误的。首先,Java 编译器尝试将其解释为对签名为 .boolean Equals(char, String)
Equals
无论如何,通常不会是方法的名称。Java 约定是方法名称以小写字母开头。char
String
Java中有一个比较器这样的东西,但它是一个接口而不是一个方法,它是这样声明的:
public interface Comparator<T> {
public int compare(T v1, T v2);
}
换句话说,方法名称是(不是),它返回一个整数(不是布尔值),并比较两个可以提升为类型参数给定类型的值。compare
Equals
有人(在删除的答案中!)说他们尝试了这个:
if (c == " ")
失败的原因有两个:
" "
是字符串文本而不是字符文本,Java 不允许直接比较 和 值。String
char
切勿使用 比较字符串或字符串文本。引用类型的运算符比较对象标识,而不是对象值。在这种情况下,通常具有不同标识和相同值的不同对象。测试通常会给出错误的答案...从你在这里试图做的事情的角度来看。==
==
String
==