发布时间:2024-01-20 10:00
在Java开发中有时候需要打印数组信息,下面是整理归纳的几种打印数组方法:(如下)
最简单的方法,逐个遍历打印
注:如果是多维数组的话,使用多层 for 循环嵌套就可以打印了。
一维数组:
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 + \"、\"); } }
二维数组:
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] + \"、\"); } } }
对于一维数组,可以使用Arrays.toString()方法,它支持将任意类型的数组转换为字符串,代码如下:
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)); }
但对于多维数组,用 Arrays.toString() 就会出现和直接打印数组变量名时一样的问题,打印出来的是地址值。这时候,就需要使用 Arrays.deepToString() 方法了,如下图:
Java不会去使用多维数组,最多用到二维,因为Java会用到面向对象
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)); }
一维数组用 Arrays.toString() 方法,多维数组用 Arrays.deepToString() 方法
该方法是将数组转化为list
以下几点需要注意:
(1)该方法不适用于基本数据类型
(byte,short,int,long,float,double,boolean),但可以用基本数据类型的封装类。比如int的封装类Integer.(Object 数组也是有效)
(2)该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新
(3)不支持add和remove方法
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] }
简单的方式
Byte[] bs = {0x0F, 0x1F, 0x2F, 0x3F, 0x4F, 0x5F, 0x6F}; System.out.println(Arrays.toString(bs));
// 打印输出结果
[15, 31, 47, 63, 79, 95, 111]
更加通用一点的方式
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; }
// 打印输出结果
[-32, 79, -48, 32, -22, 58, 105, 16, -94, -40, 8, 0, 43, 48, 48, -99]
byte[] bs = \"你好,这是一段字符串!\".getBytes(); System.out.println(Arrays.toString(bs));
// 打印输出结果
[-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]
到此这篇关于Java打印数组的三种方法的文章就介绍到这了,更多相关Java打印数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
Classfication of Flow-Shop Scheduling Problems(流水车间调度问题的分类)
孪生网络图像相似度_文本蕴含之孪生网络(Siamese Network)
罗永浩宣布退网创业;谷歌研究员“走火入魔”事件曝光:认为AI已具备人格,被罚带薪休假;Wasmer 2.3 发布|极客头条
网页设计作业 旅游网站网站设计——绿色的随行旅游网站( 1页) 出行游玩网页设计作业,简单大学生静态HTML网页作品
Parsing error: No Babel config file detected for xxx Either disable config file checking...报错解决方法
如何使用 Node.js + MongoDB 开发 RESTful API 接口(Node.js + Express ...)
提名 Apache ShardingSphere Committer,说说方法
译:Two-stream convolutional networks for action recognition in videos
米家、涂鸦、Hilink、智汀等生态哪家强?5大主流智能品牌分析