为什么它不起作用?PS我是Java的初学者。
int userInfo[];
userInfo = new int[2];
userInfo[0] = 11;
userInfo[1] = 20;
userInfo["result"] = userInfo[0] + userInfo[1];
System.out.println(userInfo["result"]);
只有 anint
可以是数组的索引。AString
行不通。如果您需要 3 个插槽,请将您的数组声明为长度 3,然后您可以使用userInfo[2]
.
JLS,第 10.4 节非常清楚:
数组必须由 int 值索引;short、byte 或 char 值也可以用作索引值,因为它们经过一元数字提升(第 5.6.1 节)并成为 int 值。
int userInfo[];
userInfo = new int[2];
userInfo[0] = 11;
userInfo[1] = 20;
int result = userInfo[0] + userInfo[1];
System.out.println(result);
字符串不能是数组中的索引。
您的阵列有 2 个插槽,您使用它们来存储数字。要获得总和,请执行以下操作:
int sum = userInfo[0] + userInfo[1];
此外,即使您的数组有第三个插槽,您也只能通过其数字索引(在本例中为 0、1 或 2)访问单个元素。不是String
类似的结果。
在 java 中,数组只有零和正整数索引。这意味着只能使用 0 到数组大小减 1 来访问数组。
如果你想做类似的事情:
userInfo["result"] = userInfo[0] + userInfo[1];
您可以尝试以下方法:
int result = userInfo[0] + userInfo[1];
System.out.println(result);
或者:
Map<String,Intgeer> example = new HashMap<String,Intgeer>();
example.put("result", new Integer(userInfo[0] + userInfo[1]));
System.out.println(example.get("result"));
正如我在评论中提到的,这里有几个问题。你在这里声明一个数组int
:
int userInfo[];
然后尝试将 a 传递给string
它(这不起作用):
userInfo["result"]; // This is bad news
您清理后的代码应如下所示:
int userInfo[];
userInfo = new int[2];
userInfo[0] = 11;
userInfo[1] = 20;
int sumArrayValues = userInfo[0] + userInfo[1];
System.out.println(sumArrayValues);
快乐编码!