2

我正在尝试以下代码:-

HashMap<Integer,Integer[]> possibleSeq = new HashMap<Integer,Integer[] >();
        possibleSeq.put(0,new Integer[]{1,4,5});
        possibleSeq.put(1,new Integer[]{0,4,5,2,6});
        Integer[] store = possibleSeq.get(0);
        for(int i=0;i<store.length;i++)
        {
            System.out.print(store[i] + ' ');
        }

输出是: -

333637

但是由于我将 key 为 0 时的值等同于store变量,我打算将1 4 5其作为输出。所以我推断Integer[] store = possibleSeq.get(0);这不是存储possibleSeq.get(0)in store元素的正确方法。那么我应该怎么做呢?

4

4 回答 4

13

您的问题是您将 char ' '(转换为 int 32)添加到 store[i] 是 int。

请改用双引号。

System.out.print(store[i] + " ");
于 2013-07-31T09:05:00.120 回答
5
System.out.print(store[i] + ' ');

当您正在打印(store[i] + ' ')时,' '这里char与整数值连接并打印,因此它变为 (1+32),因为 space( ) 的 ascii 值为 32。即 33,依此类推...

尝试这个 -

System.out.print((store[i]) + " ");

有用 -

1 4 5 
于 2013-07-31T09:05:07.447 回答
0

您使用的是单引号而不是双引号。

用这个System.out.print(store[i] + " ");

于 2013-07-31T09:07:55.860 回答
0
  System.out.print(store[i] + ' ');// take a look at this store[0]=1 
                                      and char ' ' is 32 

然后 (1+ 32) 你会得到。

所以改变你的代码

System.out.print(store[i] + " ");
于 2013-07-31T09:08:44.930 回答