如何检查char是否等于空格? 您所在的位置:网站首页 java如何判断空格 如何检查char是否等于空格?

如何检查char是否等于空格?

2024-06-03 10:27| 来源: 网络整理| 查看: 265

问题

这是我得到的:

private static int countNumChars(String s) { for(char c : s.toCharArray()){ if (Equals(c," ")) } }

但该代码表示​​无法找到该方法的符号。我记得Java有这样的比较器...有什么建议吗?

#1 热门回答(185 赞) if (c == ' ')

char是原始数据类型,因此可以与==进行比较。

此外,通过使用双引号,你创建Stringconstant(" "),而使用单引号时,它是acharconstant(' ')。

#2 热门回答(81 赞)

你需要的代码取决于"空白空间"的含义。

如果你的意思是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字符;请参阅javadoc forCharacter.isWhitespace(char)。

你写的是这个:

if (Equals(ch, " ")) { // ... }

这在许多层面都是错误的。首先,Java编译器尝试解释的方式是调用签名为boolean Equals(char, String)的方法。

这是错误的,因为没有方法,正如编译器在错误消息中报告的那样。 无论如何,Equals通常不会是方法的名称。 Java约定是方法名称以小写字母开头。 你的代码(如编写的)试图比较字符和字符串,但char和String不具有可比性,不能转换为公共基类型。

在Java中有比较器这样的东西,但它是一个接口而不是一个方法,它被声明为:

public interface Comparator { public int compare(T v1, T v2); }

换句话说,方法名称是compare(notEquals),它返回一个整数(不是布尔值),并将两个可以提升的值与type参数给出的类型进行比较。

有人(在删除的答案中!)说他们试过这个:

if (c == " ")

这失败有两个原因:

""是字符串文字而不是字符文字,Java不允许直接比较String和char值。 你不应该使用==来比较字符串或字符串文字。引用类型上的==运算符比较对象标识,而不是对象值。在String的情况下,通常具有具有不同标识和相同值的不同对象。从你在这里尝试做的角度来看,==测试通常会给出错误的答案。 #3 热门回答(19 赞)

由于char是原始类型,你可以写入c == ' '。你只需要拨打电话号码equals(),参考类型为String或Character。

原文链接



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有