为什么它不起作用? 附:我是Java的初学者。
int userInfo[];
userInfo = new int[2];
userInfo[0] = 11;
userInfo[1] = 20;
userInfo["result"] = userInfo[0] + userInfo[1];
System.out.println(userInfo["result"]);
答案 0 :(得分:9)
只有int
可以是数组的索引。 String
不起作用。如果您需要3个插槽,请将您的阵列声明为长度3,然后您可以使用userInfo[2]
。
JLS, Section 10.4非常清楚:
数组必须用int值索引; short,byte或char值也可以用作索引值,因为它们受到一元数字提升(§5.6.1)并成为int值。
答案 1 :(得分:4)
int userInfo[];
userInfo = new int[2];
userInfo[0] = 11;
userInfo[1] = 20;
int result = userInfo[0] + userInfo[1];
System.out.println(result);
字符串不能是数组中的索引。
答案 2 :(得分:2)
您的阵列有2个插槽,您用它们来存储数字。要获得总和,请执行以下操作:
int sum = userInfo[0] + userInfo[1];
此外,即使您的阵列有第三个插槽,您也只能通过其数字索引(在本例中为0,1或2)访问各个元素。不是String
之类的结果。
答案 3 :(得分: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"));
答案 4 :(得分:1)
正如我在评论中提到的,这里有几个问题。你在这里声明了一个int
数组:
int userInfo[];
然后尝试在此处传递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);
快乐的编码!