Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 错误:无法取消对int的引用(重复)_Java - Fatal编程技术网

Java 错误:无法取消对int的引用(重复)

Java 错误:无法取消对int的引用(重复),java,Java,我正在编写一个简单的Java程序来进行温度转换,在第8行(我在下面的代码中标记了该行)上不断出现一个错误,即int不能被解引用。我不确定这到底意味着什么,或者如何修复它,这里的其他问题与相同的错误没有帮助找到解决我的错误的方法。 问题是:格式: ?<int><int><int><int> ? 我必须解决这个问题吗?在这种情况下,但考虑到第二个向量乘以3,第三个向量乘以1,第四个向量乘以0,最后一个向量被减去 class LeaderBoard

我正在编写一个简单的Java程序来进行温度转换,在第8行(我在下面的代码中标记了该行)上不断出现一个错误,即int不能被解引用。我不确定这到底意味着什么,或者如何修复它,这里的其他问题与相同的错误没有帮助找到解决我的错误的方法。 问题是:格式:

 ?<int><int><int><int>
我必须解决这个问题吗?在这种情况下,但考虑到第二个向量乘以3,第三个向量乘以1,第四个向量乘以0,最后一个向量被减去

class LeaderBoard{
  public static void main(String[] args){
    String errorFormat = "Format error: You must write 4 integers and one symbol ?";

    int[] list = null;
    int position = -1, j = 0;

    if(args.length!=5){
        System.err.println(errorFormat);
    }else{
        try {
            list = new int[4];
            for(int i=0;i<args.length;i++){
                if(position== -1 && args[i].equals("?")){
                    position = i;
                }else if((position!= -1 && args[i].equals("?")) || (j==4)){
                    //Hay mas de un ? o no hay ?
                    System.err.println(errorFormat);
                    System.exit(1);
                }else{
                    list[j] = Integer.parseInt(args[i]);
                    j++;
                }
            }
        } catch (NumberFormatException e) {
            System.err.println(errorFormat);
            System.exit(1);
        }

        System.out.println("The missing value is "+calculate(position,list)); 
    } 
}

static int calculate(int position, int[] list){
    position=0;
    for (int i=0; i<list.length; i++){
        if(list[1]==0){

position=list[1]*3+list[2]*1+list[3]*0+list[4]*(-1);
        }
    }   
    return 0;   
}}
类排行榜{
公共静态void main(字符串[]args){
String errorFormat=“格式错误:必须写入4个整数和一个符号?”;
int[]list=null;
int位置=-1,j=0;
如果(参数长度!=5){
System.err.println(errorFormat);
}否则{
试一试{
列表=新整数[4];

for(int i=0;i
list[1]
是一种基本类型。您无法对其调用方法。因此,当您尝试调用
equal
(您的意思是
equals()
?)时,会出现错误


除此之外,您的逻辑没有任何意义。您正在尝试将
int
String
进行比较,然后将布尔结果与另一个
int
列表[1]
是一种基本类型。您无法对其调用方法。因此,当您尝试调用
equal
时(您的意思是
equals()
?)你会得到一个错误


除此之外,您的逻辑没有任何意义。您试图将
int
String
进行比较,然后将布尔结果与另一个
int
进行比较。在
计算
函数中,您正在传递
位置
,但您甚至没有使用它并将
0
赋值给它

此外,当i=1时,for循环将引发异常,因为您的代码将尝试访问不存在的列表[i+4]=list[5],因此将获取
ArrayIndexOutOfBound异常

由于数组只包含int类型,您不必担心
的位置,因为
不是int类型,您可能可以使用以下代码:

static int calculate(int[] list){
    int position=0;           
    int calculatedValue = list[position]*3+list[position+1]*1+list[position+2]*0+list[position+3]*(-1);          

    return calculatedValue ;   
}

calculate
函数中,您传递的是
位置
,但您甚至没有使用它并将
0
分配给它

此外,当i=1时,for循环将引发异常,因为您的代码将尝试访问不存在的列表[i+4]=list[5],因此将获取
ArrayIndexOutOfBound异常

由于数组只包含int类型,您不必担心
的位置,因为
不是int类型,您可能可以使用以下代码:

static int calculate(int[] list){
    int position=0;           
    int calculatedValue = list[position]*3+list[position+1]*1+list[position+2]*0+list[position+3]*(-1);          

    return calculatedValue ;   
}

明白了!但是,我怎样才能获得数组中“?”符号的位置?@gfdadadaf您的数组是
int
数组,因此它不会包含
字符串。明白了!但是,我怎样才能获得“?”符号的位置呢数组中的符号?@gfdadaf您的数组是一个
int
数组,因此它不包含
字符串
。请看,现在错误消失了,但即使使用您的代码,最终值始终为0。请使用不同的输入进行检查。可能传递的输入为0。例如,如果我输入
,1,2,3,4
列表数组函数将返回
1*3+2*1+3*0+4(-1)=1
真的!我知道了。如果我想用if来检测?的确切位置,我该怎么办?@gfdadafaf您的int数组中没有
。为什么您确切地想要
的位置,因为如果有人写1、2、3、4,程序必须说这不是?的正确位置。我知道我应该将此信息写在主要问题中。现在错误消失了,但即使使用代码,最终值始终为0。请使用不同的输入进行检查。可能传递的输入为0。例如,如果我输入
?,1,2,3,4
列表数组将为
[1,2,3,4]
calculate
函数将返回
1*3+2*1+3*0+4(-1)=1
真的!我知道了。如果我想用if来检测?的确切位置,我该怎么办?@gfdadafaf您的int数组中没有
。为什么您确切地想要
的位置,因为如果有人写1、2、3、4,程序必须说这不是?的正确位置。我知道我应该把这些信息写在主要问题中。