【问题标题】:JAVA - logical operations on charsJAVA - 对字符的逻辑操作
【发布时间】:2011-03-29 22:05:01
【问题描述】:

我正在创建一个文件读取程序。我需要过滤掉任何不是 '0-9' 或 '.' 的字符。

除这些之外的任何字符都需要触发 IF 语句。

这是我尝试过的 -

if  ( ( ((char)c < '0') || ((char)c > '9') ) || ((char)c != '.') )

或-

( ( ((char)c != '0' ) || ((char)c != '.' ) || ((char)c != '1' ) || ((char)c != '2' ) || ((char)c != '3' ) || ((char)c != '4' ) || ((char)c != '5' ) || ((char)c != '6' ) || ((char)c != '7' ) || ((char)c != '8' ) || ((char)c != '9' ) ))

两者都不起作用。

【问题讨论】:

  • 如果c 是字符或任何其他整数类型,则不需要在此处进行强制转换。而且您通常不希望在那里有一个浮点数...

标签: java char operators


【解决方案1】:
if(Character.isDigit(c) || c == '.')
{

}

【讨论】:

    【解决方案2】:

    任何不是 '.' 的字符将导致这个 if 语句为真,修复它(我以第一个为例,但它也适用于第二个):

     if ( ( ((char)c < '0') || ((char)c > '9') ) && ((char)c != '.') )
    

    或者,你可以写

     if (!( ((char)c >='0' && (char) c <='9') || (char) c == '.') )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多