错误:int 不能被取消引用 java(重复)

我正在编写一个简单的 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;   

}}

当我执行程序时,结果总是得到值 0,虽然我更改了输入值。


有人可以帮助我吗?


狐的传说
浏览 462回答 2
2回答

慕虎7371278

list[1]是原始类型。你不能在它上面调用方法。因此,当您尝试调用equal(您是说equals()吗?)时,您会收到错误消息。除此之外,你的逻辑没有意义。您正在尝试将 anint与 aString进行比较,然后将布尔结果与另一个进行比较int

小怪兽爱吃肉

在您的calculate函数中,您正在传递,position但您甚至没有使用它并分配0给它。当 i=1 时,for 循环也会抛出异常,因为您的代码将尝试访问不存在的 list[i+4]=list[5] ,因此将获取ArrayIndexOutOfBound Exception.由于您的数组仅包含 int 类型,因此您无需担心?as 的位置?不是 int 类型,您可以使用以下代码:static int calculate(int[] list){&nbsp; &nbsp; int position=0;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; int calculatedValue = list[position]*3+list[position+1]*1+list[position+2]*0+list[position+3]*(-1);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; return calculatedValue ;&nbsp; &nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java