java char 初始化为空格_关于Java:如何检查char是否等于空白?

这是我得到的:

private static int countNumChars(String s) {

for(char c : s.toCharArray()){

if (Equals(c,""))

}

}

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

空的空间-没有内容的?

if (c == ' ')

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

另外,通过使用双引号创建String常数(""),而使用单引号则是char常数(' ')。

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

如果您是指ASCII /拉丁文-1 / Unicode空格字符(0x20)aka SP,则:

if (ch == ' ') {

// ...

}

如果您是指任何传统的ASCII空格字符(SP,HT,VT,CR,NL),则:

if (ch == ' ' || ch == '\t' || ch == '

' || ch == '

' || 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中有诸如Comparator之类的东西,但是它是一个接口而不是方法,并且声明如下:

public interface Comparator< T > {

public int compare(T v1, T v2);

}

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

有人(在已删除的答案中!)说,他们尝试过此操作:

if (c =="")

失败有两个原因:

""是字符串文字,而不是字符文字,并且Java不允许直接比较String和char值。

您永远不要使用==比较字符串或字符串文字。引用类型上的==运算符比较对象标识,而不是对象值。在String的情况下,通常会有具有不同标识和相同值的不同对象。从您在此处尝试做的事情来看,==测试通常会给出错误的答案。

你可以用

Character.isWhitespace(c)

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

if (c == ' ')

也可以。

好吧,这最终取决于他是否只检查空格。 我的意思是,如果其中包含标签,您将得到假肯定。

更新。 他可以直接从角色中完成他所需要的,尽管这太过分了。

由于char是原始类型,因此您只需编写c == ' '。

您只需要为String或Character之类的引用类型调用equals()。

我的建议是:

if (c == ' ')

要比较字符,请使用==运算符:

if (c == ' ')

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

在这种情况下,您正在考虑String比较函数"String".equals("some_text")。字符不需要使用此功能。取而代之的是标准的==比较运算符就足够了。

private static int countNumChars(String s) {

for(char c : s.toCharArray()){

if (c == ' ') // your resulting outcome

}

}

你可以试试:

if(Character.isSpaceChar(ch))

{

// Do something...

}

要么:

if((int) ch) == 32)

{

// Do something...

}

乍一看,您的代码将无法编译。由于嵌套的if语句没有花括号,因此它将在下一行考虑应执行的代码。另外,您正在将字符与字符串""进行比较。尝试将值比较为char。我认为正确的语法是:

if(c == ' '){

//do something here

}

但是再说一次,我对"Equal"类不熟悉

要比较Strings,您必须使用equals关键字。

if(c.equals(""))

{

}

1)这个问题是关于比较字符,而不是字符串。 2)Java中没有equals关键字。 它是一个标识符。 3)由于c是char(原始类型!),因此无法调用c.equals(...)。 4)即使可以,也没有char值映射到""。 后者表示"没有字符"的字符串。 无法匹配字符。

回答此问题的关键是想出"空空间"的含义,这种含义在上下文中具有某种意义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值