大家好,又见面了,我是你们的朋友全栈君。
文章目录
JAVA打印数组的四种方法
无聊看模块Integer.java源码时(IDEA中鼠标悬浮在Integer上按ctrl+alt 可以转到类源码),因为刚学java,想尝试着仿照python的方法打印数组:
final int[] arr1 = {
1,2,3,4,5};
System.out.println(arr1);
只打印出了地址:
于是上网搜了下打印数组内容的正确方法,整理如下:
1.循环打印数组
String [] arr2 = {
"dashi", "baiqun", "wangxiang", "wennuan", "ni"};
public static void loopPrintArray(String []arr) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < arr.length; i++) {
if(i>0){
sb.append(",");
}
sb.append(arr[i]);
}
System.out.println(sb.toString());
}
// 循环打印数组
System.out.println("------------ loop -------------");
loopPrintArray(arr2); // 不带[]输出一行
结果:
可以看到,方法loopPrintArray是把数组中每一个元素用 “,” 连接成一个字符串再输出。
2.使用Arrays.toString()方法
使用Arrays类需要引用:
import java.util.Arrays;
代码:
String [] arr2 = {
"dashi", "baiqun", "wangxiang", "wennuan", "ni"};
public static void toStingPringArray(String []arr) {
System.out.println(Arrays.toString(arr));
}
// 使用Arrays.toString()方法
System.out.println("-- Arrays.toString() Methods --");
toStingPringArray(arr2); // 带[]输出一行
结果:
这个输出结果就和python中打印数组很相仿了。
3.使用JDK 8 的 java.util.Arrays.stream()
同样需要导入:
import java.util.Arrays;
代码:
String [] arr2 = {
"dashi", "baiqun", "wangxiang", "wennuan", "ni"};
// 3.使用JDK 8 的 java.util.Arrays.stream()
public static void streamPrintArray(String []arr) {
Arrays.stream(arr).forEach(System.out::println);
}
// 使用JDK 8 的 java.util.Arrays.stream()
System.out.println("--- Arrays.stream() Methods ---");
streamPrintArray(arr2); // 分行输出
结果:
Arrays.stream()方法是将数组元素分行输出。
4 使用Arrays.deepToString()
对于deepToString,若为多维数组则会用同样的方法打印
代码:
String [] arr2 = {
"dashi", "baiqun", "wangxiang", "wennuan", "ni"};
String [][] arr3 = {
{
"llama","truthahn"},{
"xiaoerer","laopenzi"},{
"xiangnile","haha.."}};
// 4.1 使用Arrays.deepToString()
public static void deepToStringPringArray(String []arr) {
System.out.println(Arrays.deepToString(arr));
}
// 4.2 对于deepToString,若为多维数组则会用同样的方法打印
public static void deepToStringPringArrayExpand(String [][]arr) {
System.out.println(Arrays.deepToString(arr));
}
// 扩展使用Arrays.toString(): Arrays.deepToString()
System.out.println("- Arrays.deepToString() Methods -");
deepToStringPringArray(arr2);
// deepToStringPringArray(arr3); // 不兼容:java.lang.String[][]无法转换为java.lang.String[]
System.out.println("- Arrays.deepToString() Expanded -");
deepToStringPringArrayExpand(arr3);
结果:
可以看到对二级数组,使用deepToString()方法使得数组arr3按照之前相同的模式输出。
个人心得
学习一种编程语言时还是要多思考,理解和实践同样重要。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/131169.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...