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