JAVA - 对字符的逻辑运算

时间:2011-03-29 22:05:01

标签: java char operators

我正在创建一个文件读取程序。我需要过滤掉任何不是'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' ) ))

两者都不起作用。

2 个答案:

答案 0 :(得分:13)

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

}

答案 1 :(得分:5)

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

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

或者,你可以写

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