【问题标题】:How to check if a character is an apostrophe?如何检查一个字符是否是撇号?
【发布时间】:2012-04-22 07:39:24
【问题描述】:

我需要检查一个字符是否是撇号。到目前为止,这是我的代码:

public boolean isWordCharacter(int c) {
if ((char) c == '\'')
    return true;
else return Character.isLetter(c);
}

但是,它从未真正进入if ((char) c == '\'') 部分。我检查的方式有问题吗?谢谢!

【问题讨论】:

  • 该代码对我来说看起来不错;你的问题一定出在其他地方。
  • 本身不是一个答案,但扁平字符解析表明了一些潜在的反模式。您是否考虑过Java's regular expression facilities 来满足您的需求?
  • @MrGomez,我并不完全相信这一点,因为正则表达式有相当大的开销。如果您一次只关心一个字符,那么正则表达式可能会有点过头了。
  • @LouisWasserman 我也不是。我只是觉得把它放在那里是礼貌的,当且仅当它更好地满足 OP(以及人们在这里谷歌搜索)的需求时。 :)
  • 刚刚尝试了您的代码。它工作正常。也许 c 参数是错误的。你能告诉我们对 isWordCharacter() 的调用吗?

标签: java char


【解决方案1】:

您可以简单地使用if(c=='\'') 而不使用强制转换。或者您可以使用 39 的撇号的 ascii 值。if (c==39) 可以。

它从未真正进入 'if ((char) c == '\'') 部分

这样做的唯一原因是您永远不会将撇号传递给 isWordCharacter()。您可以通过手动向该函数发送39'\'' 来验证它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 2022-03-31
    • 2021-06-24
    相关资源
    最近更新 更多