0

为什么它不起作用?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"]);
4

5 回答 5

9

只有 anint可以是数组的索引。AString行不通。如果您需要 3 个插槽,请将您的数组声明为长度 3,然后您可以使用userInfo[2].

JLS,第 10.4 节非常清楚:

数组必须由 int 值索引;short、byte 或 char 值也可以用作索引值,因为它们经过一元数字提升(第 5.6.1 节)并成为 int 值。

于 2013-10-14T22:18:48.810 回答
4
int userInfo[];
userInfo = new int[2];
userInfo[0] = 11;
userInfo[1] = 20;
int result = userInfo[0] + userInfo[1];

System.out.println(result);

字符串不能是数组中的索引。

于 2013-10-14T22:21:11.300 回答
2

您的阵列有 2 个插槽,您使用它们来存储数字。要获得总和,请执行以下操作:

int sum = userInfo[0] + userInfo[1];

此外,即使您的数组有第三个插槽,您也只能通过其数字索引(在本例中为 0、1 或 2)访问单个元素。不是String类似的结果。

于 2013-10-14T22:20:22.783 回答
2

在 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"));
于 2013-10-14T22:23:48.937 回答
1

正如我在评论中提到的,这里有几个问题。你在这里声明一个数组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);

快乐编码!

于 2013-10-14T22:25:11.507 回答