如何检查是否一个字符等于一个空的空间?如何检查是否一个字符等于一个空的空间?(How to chec

2019-05-13 09:13发布

Here's what I've got:

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

But that code says it cannot find Symbol for that method. I remember Java having a comparer like this... Any suggestions?

Answer 1:

if (c == ' ')

char是基本数据类型,因此它可与被比较==

此外,通过使用双引号创建String常量( " " ),而用单引号这是一个char常量( ' ' )。



Answer 2:

你需要的代码取决于你的意思是“空的空间”是什么。

  • 如果你指的是ASCII /拉丁-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 Character.isWhitespace(char)


你所写的是这样的:

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

这是错误的多项水平。 首先,Java编译器试图解释的方式是用的签名方法的调用boolean Equals(char, String)

  • 这是错误的,因为没有方法存在,因为编译器错误消息的报道。
  • Equals通常不会是一个方法的名称反正。 Java的约定是方法名以小写字母。
  • 您的代码(如书面)试图比较字符和字符串,但charString没有可比性,不能转换为一个共同的基本类型。

有这样的事,作为Java中的比较,但它的接口不是方法,并声明如下:

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

换句话说,该方法名是compare (未Equals ),它返回一个整数(非布尔值),并将其与可被提升到由类型参数给出的类型的两个值。


有人(!在删除回答)说,他们尝试这样做:

    if (c == " ")

失败的原因有两个:

  • " "是一个字符串,而不是字面字符,而Java不允许直接比较Stringchar值。

  • 使用你不应该比较字符串或字符串文字== 。 所述==上的引用类型运算符比较对象标识,而不是对象值。 在的情况下, String是很常见的具有不同身份和相同的值不同的对象。 一个==测试会经常给错误的答案 ......从你正试图在这里做透视。



Answer 3:

你可以使用

Character.isWhitespace(c)

或任何的Character类的其他可用的方法。

  if (c == ' ')

也适用。



Answer 4:

由于char是一种原始的类型,你可以只写c == ' '
你只需要调用equals()以供参考类型,如StringCharacter



Answer 5:

我的建议是:

if (c == ' ')


Answer 6:

比较字符使用==操作符:

if (c == ' ')


Answer 7:

在这种情况下,你所想的字符串比较函数的"String".equals("some_text") 字符不需要使用此功能。 取而代之的是标准的==比较操作就足够了。

private static int countNumChars(String s) {
    for(char c : s.toCharArray()){
        if (c == ' ') // your resulting outcome
    }
}


Answer 8:

乍一看,你的代码将无法编译。 由于if语句没有任何括号中的嵌套,它会考虑下一行,它应该执行代码。 同时,要针对字符串比较一个char,“”。 作为尝试,而不是字符比较值。 我认为正确的语法是:

if(c == ' '){
   //do something here
}

不过话又说回来,我不熟悉的"Equal"



Answer 9:

Character.isSpaceChar(c) || Character.isWhitespace(c) Character.isSpaceChar(c) || Character.isWhitespace(c)为我工作。



Answer 10:

你可以试试:

if(Character.isSpaceChar(ch))
{
    // Do something...
}

要么:

if((int) ch) == 32)
{
    // Do something...
}


Answer 11:

要比较Strings ,你必须使用等于关键字。

if(c.equals(""))
{
}


文章来源: How to check if a char is equal to an empty space?