其部分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)
从字符串中检索单个字符。要检查字符是否为数字,必须使用 Character
类中的静态方法 isDigit
。并且 - 最后但并非最不重要的 - 字符串知道其长度,并且 - 与 C 不同 - 字符串不是以 null 结尾的。
关于java - 表达式的类型必须是数组类型,但它解析为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22655153/