Java可用打印数组方法5中+常用变量转字符串方法
目录
- 5种可用方法及使用数组类型如下
- 注意事项
- 1. 直接打印数组名System.out.println(数组名);
- 2. new String(数组名) 打印字符串
- 3. Arrays.toString(数组名) 返回指定数组的内容的字符串表示形式。
- 4.返回参数的String形式String.valueOf(数组名)【同1.直接输出】
- 5.for循环和增强for【可更改打印格式最灵活,fori唯一一种可真正访问更改数组的方式,其他都只是打印】
5种可用方法及使用数组类型如下
char[] charArr1 = {'!', '@', '#'};System.out.println(charArr1);//!@#//打印数组地址。但char数组例外,是直接打印元素内容。其他数组都是打印地址System.out.println(new String(charArr1));//!@#//用String的构造方法,只支持byte和char数组System.out.println(Arrays.toString(charArr1));//[!, @, #]把数组转字符串且有,隔开System.out.println(String.valueOf(charArr1));//!@#for(char c: charArr1){System.out.print(c + " ");}//! @ #for(int i = 0; i < charArr1.length; i++){System.out.print(charArr1[i] + " ");}//! @ #double[] douArr1 = { 1.1, 2.2, 3.3};System.out.println(douArr1);//[D@5f150435//打印数组地址//System.out.println(new String(douArr1));//int[],byte[],char[]System.out.println(Arrays.toString(douArr1));//[1.1, 2.2, 3.3]System.out.println(String.valueOf(douArr1));//[D@5f150435for(double d: douArr1){System.out.print(d + " ");//1.1 2.2 3.3 }for(int i = 0; i < douArr1.length; i++){System.out.print(douArr1[i] + " ");}//1.1 2.2 3.3
注意事项
如数组内容为{元素1, 元素2, 元素3}
- 一般打印的元素字符串是元素1元素2元素3
- 数组内容的字符串表示形式[元素1,元素2,元素3]只有Arrays.toString(数组)是
//4类8种挨个测试byte[] b1 = {48, 49, 50};short[] s1 = {65, 66, 67};int[] i1 = {111, 222, 333};long[] l1 = {1000, 2000, 3000};float[] f1 = {0.1f, 0.2f, 0.3f};double[] douArr1 = { 1.1, 2.2, 3.3};char[] charArr1 = {'!', '@', '#'};boolean[] bo1 = {true, false, true};
1. 直接打印数组名System.out.println(数组名);
- 如示例中double类型数组直接打印为
[D@5f150435表示地址值,
[表示为一个数组
D表示数组元素为double类型
@为分隔符
后为真实地址 - 只有char数组是直接打印出元素串
/*直接打印*/System.out.println(b1);System.out.println(s1);System.out.println(i1);System.out.println(l1);System.out.println(f1);System.out.println(douArr1);System.out.println(charArr1);System.out.println(bo1);
[B@19e1023e
[S@7cef4e59
[I@64b8f8f4
[J@2db0f6b2
[F@3cd1f1c8
[D@3a4afd8d
!@#
[Z@1996cd68
2. new String(数组名) 打印字符串
仅支持char 和 byte数组

/*做参数new字符串,打印字符串*/System.out.println("-------------------");System.out.println(new String(b1));
// System.out.println(new String(s1));
// System.out.println(new String(i1));
// System.out.println(new String(l1));
// System.out.println(new String(f1));
// System.out.println(new String(douArr1));System.out.println(new String(charArr1));
// System.out.println(new String(bo1));
012
!@#
3. Arrays.toString(数组名) 返回指定数组的内容的字符串表示形式。
只有这种打印方式是数组形式,有[,]的字符串
System.out.println(Arrays.toString(b1));System.out.println(Arrays.toString(s1));System.out.println(Arrays.toString(i1));System.out.println(Arrays.toString(l1));System.out.println(Arrays.toString(f1));System.out.println(Arrays.toString(douArr1));System.out.println(Arrays.toString(charArr1));System.out.println(Arrays.toString(bo1));
[48, 49, 50]
[65, 66, 67]
[111, 222, 333]
[1000, 2000, 3000]
[0.1, 0.2, 0.3]
[1.1, 2.2, 3.3]
[!, @, #]
[true, false, true]
4.返回参数的String形式String.valueOf(数组名)【同1.直接输出】
对应方法1直接输出,只有char直接输出是元素,其他都是地址
方法可用种类,boolean,char,double,float,int,long,Object
但是数组里只支持char[],其他使用的返回 Object参数的字符串 Object形式。
注意:直接访问一个对象,相当于对象.toString()

/*String.valuOf(-)把参数转为字符串形式输出*/System.out.println("------------------------");System.out.println(String.valueOf(b1));System.out.println(String.valueOf(s1));System.out.println(String.valueOf(i1));System.out.println(String.valueOf(l1));System.out.println(String.valueOf(f1));System.out.println(String.valueOf(douArr1));System.out.println(String.valueOf(charArr1));System.out.println(String.valueOf(bo1));
Object形式访问对象,就是地址
[B@19e1023e
[S@7cef4e59
[I@64b8f8f4
[J@2db0f6b2
[F@3cd1f1c8
[D@3a4afd8d
!@#
[Z@1996cd68
5.for循环和增强for【可更改打印格式最灵活,fori唯一一种可真正访问更改数组的方式,其他都只是打印】
for循环快捷写法,数组名.fori
增强for快捷,foreach
全变量数组可用
/*两种for循环输出数组*///都可以改变打印格式for ( byte b: b1) {System.out.print(b + "'");}System.out.println();for (int i = 0; i < b1.length ; i++) {System.out.print(b1[i] + "*");b1[i] = 0;}System.out.println();for (int i = 0; i < b1.length ; i++) {System.out.print(b1[i] + "^");}
48'49'50'
48*49*50*
0^0^0^
