Home  >  Article  >  Java  >  What are the methods for printing arrays in Java?

What are the methods for printing arrays in Java?

PHPz
PHPzforward
2023-04-19 19:28:052248browse

    Sometimes it is necessary to print array information in Java development. Here are several ways to print arrays: (as follows)

    ①, use for Loop printing

    The simplest way is to traverse and print one by one

    Note: If it is a multi-dimensional array, you can print it by using multi-layer for loop nesting.

    One-dimensional array:

    public static void main(String[] args) {
        int[] arr = new int[]{0,1,2,3,4,5,6,7,8,9};
        // 普通for循环打印
        System.out.println("普通for循环打印:");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "、");
        }
        System.out.println(); // 换行
        // 增强for循环打印
        System.out.println("增强for循环打印:");
        for (int num : arr) {
            System.out.print(num + "、");
        }
    }

    Two-dimensional array:

    public static void main(String[] args) {
          int[][] arr = new int[][] {{1,2},{2,3},{3,4},{4,5},{5,6}};// 二维数组
            for (int i = 0; i < arr.length; i++) {
                for (int j = 0; j < arr[i].length; j++) {
                   System.out.print(arr[i][j] + "、");
             }
         }
     }

    ②, use Arrays.toString() or Arrays.deepToString()

    For a For multi-dimensional arrays, you can use the Arrays.toString() method, which supports converting any type of array into a string. The code is as follows:

    public static void main(String[] args) {
        int[] arr = new int[]{0,1,2,3,4,5,6,7,8,9};
        //使用Array.toString()
        System.out.println(Arrays.toString(arr));
    }

    But for multi-dimensional arrays, using Arrays.toString() will appear and directly The same problem occurs when printing array variable names. What is printed is the address value. At this time, you need to use the Arrays.deepToString() method, as shown below:

    Java will not use multi-dimensional arrays, at most two-dimensional arrays, because Java will use object-oriented

    public static void main(String[] args) {
        int[][] arr = new int[][] {{1,2},{2,3},{3,4},{4,5},{5,6}};// 二维数组
        //使用Arrays.deepToString()
        System.out.println(Arrays.deepToString(arr));
    }

    Use the Arrays.toString() method for one-dimensional arrays, and the Arrays.deepToString() method for multi-dimensional arrays

    ③, use Arrays.asList()

    This method converts the array into a list

    The following points need to be noted:

    (1) This method is not applicable to basic data types

    (byte, short, int, long, float, double, boolean), But you can use encapsulation classes of basic data types. For example, the encapsulation class Integer of int. (Object array is also valid)

    (2) This method links the array and the list. When one of them is updated, the other one is automatically updated

    (3) The add and remove methods are not supported

        public static void main(String[] args) {
            int[] arr = new int[]{0,1,2,3,4,5,6,7,8,9};
            System.out.println(Arrays.asList(arr));
            //打印结果:[[I@140e19d]
        }
        public static void main(String[] args) {
            Integer[] arr = new Integer[]{0,1,2,3,4,5,6,7,8,9};
            System.out.println(Arrays.asList(arr));
            //打印结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
        }

    Supplement: java byte array printing

    Sixteen-digit array printing output

    Simple way

    Byte[] bs = {0x0F, 0x1F, 0x2F, 0x3F, 0x4F, 0x5F, 0x6F};
    System.out.println(Arrays.toString(bs));

    //Print the output result
    [15, 31, 47, 63, 79, 95, 111]

    A more general way

    byte[] bs = hexStringToByteArray("e04fd020ea3a6910a2d808002b30309d");
    System.out.println(Arrays.toString(bs));
    
    /**
     * 将String转换为byte[]
     * @param s String
     * @return byte[]
     */
    public static byte[] hexStringToByteArray(String s) {
    	int len = s.length();
    	byte[] data = new byte[len / 2];
    	for (int i = 0; i < len; i += 2) {
    	data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i + 1), 16));
    	}
    	return data;
    }

    // Print Output result
    [-32, 79, -48, 32, -22, 58, 105, 16, -94, -40, 8, 0, 43, 48, 48, -99]

    Ordinary array printout

    byte[] bs = "你好,这是一段字符串!".getBytes();
    System.out.println(Arrays.toString(bs));

    //Print output result
    [-28, -67, -96, -27, -91, -67, -17, -68, -116, -24, -65, -103, -26, -104, -81, -28, -72, -128, -26, -82, -75, -27, -83, -105, -25 , -84, -90, -28, -72, -78, -17, -68, -127]

    The above is the detailed content of What are the methods for printing arrays in Java?. For more information, please follow other related articles on the PHP Chinese website!

    Statement:
    This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete