它是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中以外-字符串不是以空值结尾的。