JAVA - 对字符的逻辑运算

S_W*_*lan 2 java operators char

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

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

这是我试过的 -

if  ( ( ((char)c < '0') || ((char)c > '9') ) || ((char)c != '.') )
Run Code Online (Sandbox Code Playgroud)

要么-

( ( ((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' ) ))
Run Code Online (Sandbox Code Playgroud)

两者都不起作用.

Spe*_*eck 13

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

}
Run Code Online (Sandbox Code Playgroud)


MBy*_*ByD 5

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

 if ( ( ((char)c < '0') || ((char)c > '9') ) && ((char)c != '.') )
Run Code Online (Sandbox Code Playgroud)

或者,你可以写

 if (!( ((char)c >='0' && (char) c <='9') || (char) c == '.') )
Run Code Online (Sandbox Code Playgroud)