我的程序不打印没有 'g' and/or 'n' 的字符串。为什么会这样?

My program is not printing the string without 'g' and/or 'n'. Why is it so?

这是我的代码:

public class test
{
    public static void main(String y)
    {
        int l =y.length();
        for(int i=0;i<=l-1;i++)
        {
            if(y.charAt(i)!='g'||y.charAt(i)!='n')
        System.out.print(y.charAt(i));
        else
        continue;
    }}
}

我认为 && 会起作用。 或运算符检查是否只有一个语句为真。 因此,结果将始终为真,输入字符串与输出字符串相同。

问题是您使用了 OR (||) 而不是 AND (&&)

此代码将始终 return 正确:

(y.charAt(i)!='g' || y.charAt(i)!='n') 

试试这个:

    public class test 
    { 
        public static void main(String y) 
        { 
            int l =y.length(); 
            for(int i=0;i<=l-1;i++) 
            { 
                if(y.charAt(i)!='g' && y.charAt(i)!='n') 
                    System.out.print(y.charAt(i)); 
                else continue; 
            }
        } 
    }

试试这个:

public class test
{
    public static void main(String y)
    {
        int l =y.length();
        for(int i=0;i<=l-1;i++)
        {
            if( y.charAt(i) == 'g'|| y.charAt(i) == 'n'){
                continue;
            } else {
                System.out.print(y.charAt(i));
            }
        }
    }

}