它是Java代码的一部分。不幸的是,当出现argz时,我遇到了一个错误:该表达式的类型必须是数组类型,但它解析为String。

为什么我不能做argz[i]!='\0'之类的任何想法?我将不胜感激。

public  static int parsuj(String argz) throws Zakres,NieprawidlowaDana {
    int i=0;
    while(argz[i] != '\0'){
        if(argz[i]=='-')
            throw new Zakres();
        if( !argz.isdigit(i) )
            throw new NieprawidlowaDana();

        i=i+1;
    }
    int x = Integer.parseInt(argz);

    return x;

}

最佳答案

根据immibis的评论,Java确实不是C。因此字符串操作确实有所不同。请参见String documentation可以在字符串上使用哪些方法。

对于您的代码段:

public static int parsuj(String argz) throws Zakres,NieprawidlowaDana {
    for (int i = 0; i < argz.length(); i++) {
        if (argz.charAt(i) == '-')
            throw new Zakres();
        if (!Character.isDigit(argz.charAt(i)))
            throw new NieprawidlowaDana();
    }
    return Integer.parseInt(argz);
}


说明:使用方法String.charAt(int)从字符串中检索单个字符。要检查字符是否为数字,必须使用类isDigit中的静态方法Character。并且-最后但并非最不重要的-字符串知道其长度,并且-除了在C中以外-字符串不是以空值结尾的。

07-25 20:36