java - 表达式的类型必须是数组类型,但它解析为字符串

标签 java arrays string types

其部分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/

相关文章:

C++ 将字符串写入文件 = 额外字节

java - 多个 JOptionPane 输入对话框?

arrays - 获取数组的总和,保存到核心数据,并在应用程序重新打开后从总和开始?

javascript - Vue.js 从数组中弹出一个嵌套对象

java - java中如何分割这个字符串

c++ - 使用 cin.get()。无数次

java - 配置错误。未找到类 [com.mysql.cj.jdbc.Driver]。 EclipseLink、MySQL 驱动程序

Java 和 MySQL : duplicate value for 'primary key' exception

JAVA 与正则表达式拆分不起作用

javascript - 如何从嵌套的 json 数组中提取数据?