没有合适的资源?快使用搜索试试~ 我知道了~
写在前面 如果觉得有所帮助,记得点个关注和点个赞哦,将不胜感激。在 Java 中,数组虽然是一个对象,但并未明确的定义这样一个类,因此也就没有覆盖 toString() 方法的机会。如果尝试直接打印数组的话,输出的结果并不是我们预期的结果。那有没有一些简单可行的方式呢?这个问题看起来挺简单的,打印数组谁不会呀,但是请你仔细想一下,你能够通过多少种方式打印,且哪种方式最优雅简洁呢? 直接打印 很好奇,是不是,为什么不能直接使用 System.out.println() 等系列方法来打印数组?来看这样一个例子。 int[] intArray = new int[]{1,2,3,4,5}; Stri
资源详情
资源评论
资源推荐
如果优雅的打印如果优雅的打印Java数组数组
写在前面写在前面
如果觉得有所帮助,记得点个关注和点个赞哦,将不胜感激如果觉得有所帮助,记得点个关注和点个赞哦,将不胜感激。在 Java 中,数组虽然是一个对象,但并未明确的定义这样一个类,因此也就没有覆盖 toString() 方法的机
会。如果尝试直接打印数组的话,输出的结果并不是我们预期的结果。那有没有一些简单可行的方式呢?这个问题看起来挺简单的,打印数组谁不会呀,但是请你仔细想
一下,你能够通过多少种方式打印,且哪种方式最优雅简洁呢?
直接打印直接打印
很好奇,是不是,为什么不能直接使用 System.out.println() 等系列方法来打印数组?来看这样一个例子。
int[] intArray = new int[]{1,2,3,4,5};
String[] stringArray = new String[] {"1","2","3","4","5"};
System.out.println(intArray);
System.out.println(stringArray);
我们来分析一下打印出来的结果,其中[I 和 [Ljava.lang.String; 表示整型和字符串数组的 Class 名,@ 后面的是十六进制的 hashCode——这样的打印结果太“人性化”了,一般人
表示看不懂!为什么会这样显示呢?我们都知道,java中类都是继承自java.lang.Object ,查看一下 java.lang.Object 类的 toString() 方法,如下。
由此我们可以知道,在Java中,数组虽然没有显式定义成一个类,但它的确是一个对象,继承了祖先类 Object 的所有方法。那为什么数组不单独定义一个类来表示呢?
就像字符串 String 类那样呢?一个合理的解释是 Java 将其隐藏了。假如真的存在一个 Array.java,我们也可以假想它真实的样子,它必须要定义一个容器来存放数组的
元素,就像 String 类那样。
管那么多,暴力循环就好了?管那么多,暴力循环就好了?
在Java中打印数组,很多人第一感觉就是循环打印,一个for循环灭霸一切,使用 for 循环对数组进行变量顺序打印,甚至 for-each 也行。
for(int i = 0; i < cmowers.length; i++){
System.out.println(cmowers[i]);
}
for (String s : cmowers) {
System.out.println(s);
}
这样打印也确实能够完成我们的要求,不过对于这种初学编程的小白就应该掌握的for来完成我们的要求,着实还不够吧,我们应该用更优雅的方式完成我们的需求。
Arrays.toString()
自Java5之后,我们就可以使用Arrays.toString() 打印数组,Arrays.toString() 可以将任意类型的数组转成字符串,包括基本类型数组和引用类型数组,Arrays.toString()是对数组中
每个元素对象调用 .toString() ,所以我们可以 重写元素对象的 .toString() 来完成我们定制化的输出,下面我贴出方法。
weixin_38586279
- 粉丝: 2
- 资源: 949
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0