2011-03-29 208 views
2

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

任何字符,然后这些需要触发一个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'))) 

均未奏效。

+0

如果'c'是一个字符或任何其他整数类型,你不应该需要在那里投射。你通常不想在那里有一个浮点数... – 2011-03-29 23:09:42

回答

13
if(Character.isDigit(c) || c == '.') 
{ 

} 
5

任何不是'。'的字符。将导致此if语句是真实的,解决它(我拿第一作为一个例子,但它也适用于第二):

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

或者,你可以写

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