由于我对JAVA非常陌生,因此我尝试练习类方法。在我的完整程序中,我正在使用其他全局变量,并且在我的其他方法中它们可以正常工作。我的问题是如何让公共String y在isNum()方法的参数内工作,以便在任何方法内都可以使用isNum(y);现在,字符串y的方式仅在isNum的范围内,但我希望y在isNum的参数内部及其内部是全局的。尽可能简单的答案非常感谢您。

public static String y;
public static boolean isNum(String y){

for(int i = 0; i < y.length(); i++){

if(!(y.charAt(i) >= 48 && y.charAt(i) <= 57)){

    return false;
    }
}

return true;

}


我想在此循环中使用isNum并将x的值转换为y。
我知道x是一个整数,y是一个字符串。我将如何进行这项工作?

        x = input.nextInt();

        if(isNum(y){
        while(x <=0 || x > 3){
             System.out.println("Choose a correct gear number: ");

             x = input.nextInt();
        }
        switch(x){
            case 1:
            System.out.println("You're in Gear 1");
                break;
            case 2:
            System.out.println("Gear 2");
                break;

            case 3:
            System.out.println("Gear3");
        }
      }

    }

最佳答案

如果要isNum访问静态y变量,请使用类名称-ClassName.y对其进行限定。

当您在方法中写入不合格的变量名称y时,局部变量y隐藏了相同名称的static变量。

编辑:重新阅读您的问题后,我不确定您的isNum方法是否甚至需要具有y参数。如果希望该方法使用静态变量y,则只需将其签名更改为public static boolean isNum(),并保持方法主体不变。

10-03 00:40