Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 三维多维数组输出与初始化数据不匹配_Java_Arrays_Multidimensional Array - Fatal编程技术网

Java 三维多维数组输出与初始化数据不匹配

Java 三维多维数组输出与初始化数据不匹配,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我一直在编写一个代码段,该代码段将三维数组展平,但在下面的代码中,我遇到了一个相当令人困惑的情况 使用的数组初始化如下: int array[][][] = { { {000, 001, 002}, {010, 011, 012}, {020, 021, 022}, }, { {100, 101,

我一直在编写一个代码段,该代码段将三维数组展平,但在下面的代码中,我遇到了一个相当令人困惑的情况

使用的数组初始化如下:

int array[][][] = {
            {
                {000, 001, 002},
                {010, 011, 012},
                {020, 021, 022},
            },
            {
                {100, 101, 102},
                {110, 111, 112},
                {120, 121, 122},
            },
            {
                {200, 201, 202},
                {210, 211, 212},
                {220, 221, 222},
            }
    };
然后通过一个基本的嵌套for循环输出数组。 输出通过自定义十进制格式格式化,允许我打印浮动0

DecimalFormat xFormat = new DecimalFormat("000");


for(int z = 0; z < array[0].length; z++) {
        for(int y = 0; y < array[1].length; y++) {
            for(int x = 0; x < array[2].length; x++) {
                System.out.println("I = "+ i + " Element at i = " + xFormat.format(array[z][y][x]));
            }
        }
    }
DecimalFormat xFormat=新的DecimalFormat(“000”);
对于(int z=0;z
这个循环是在数组初始化之后立即使用的,但是输出完全让我困惑

I = 0 Element at i = 000
I = 1 Element at i = 001
I = 2 Element at i = 002
I = 3 Element at i = 008 <------- =/= 010
I = 4 Element at i = 009 <------- =/= 011
I = 5 Element at i = 010 <------- =/= 012
I = 6 Element at i = 016 <------- =/= 020
I = 7 Element at i = 017 <------- =/= 021
I = 8 Element at i = 018 <------- =/= 022
I = 9 Element at i = 100
I = 10 Element at i = 101
I = 11 Element at i = 102
I = 12 Element at i = 110
I = 13 Element at i = 111
I = 14 Element at i = 112
I = 15 Element at i = 120
I = 16 Element at i = 121
I = 17 Element at i = 122
I = 18 Element at i = 200
I = 19 Element at i = 201
I = 20 Element at i = 202
I = 21 Element at i = 210
I = 22 Element at i = 211
I = 23 Element at i = 212
I = 24 Element at i = 220
I = 25 Element at i = 221
I = 26 Element at i = 222   
I=000时的I=0元素 I=001时的I=1元件 I=002时的I=2元件
I=008处的I=3元素Its,因为
0*
(0前缀)用于存储八进制数(base8)

swhy 010转换为8位十进制,11到9位等。就像
0x*
用于存储十六进制,aod
***b
用于存储二进制文件一样
DecimalFormat
获取octal010的值,该值等于9,这就是您在输出中得到的值


其余的值都是小数,因为它们不是以0开头的。你可以用0作为其他瓦卢的前缀,看看会发生什么。因为
0*
(0前缀)用于存储八进制数(base8)

swhy 010转换为8位十进制,11到9位等。就像
0x*
用于存储十六进制,aod
***b
用于存储二进制文件一样
DecimalFormat
获取octal010的值,该值等于9,这就是您在输出中得到的值

其余的值都是小数,因为它们不是以0开头的。您可以在每个其他walue前面加上0,看看会发生什么

            {000, 001, 002}, //0,1,2 
            {010, 011, 012}, //8,9,10 
            {020, 021, 022}, //16,17,18