定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。
要求:
1、如果传递的参数为空,返回null
2、如果传递的数组元素个数为0,返回[]
3、如果数组为int[] arr = {1,2,3}; ,执行方法后的输出结果为:[1, 2, 3]
4、实现了多位数及负数
package com.hzs.demo;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//1.完成数组arr的输入
Scanner sc = new Scanner(System.in);
System.out.print("输入数组长度:");
int length = sc.nextInt();
int[] arr = new int[length];
System.out.print("输入该数组:");
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
}
//2.转字符串并且拼接成最终结果打印字符串
System.out.println(Res(arr));
}
//数组元素转SB字符串
public static StringBuilder numToStrBuil(int number) {
int len = 0; //该数字位数
int flag = 0; //flag=0表示正数,1表示负数
if (number < 0) {
number = -number;
flag = 1;
}
//检查负数并初始化StringBuilder
StringBuilder sb = new StringBuilder();
if (flag == 1) {
sb.append("-");
}
//求数字位数
int num2=number;
if (number != 0) {
while (num2 != 0) {
num2 /= 10;
len++;
}
} else {
len = 1;
}
//转化为sb字符串并返回
if (len > 1) {
int getNum = 0;
int len2=len;
for (int i = 0; i < len; i++) {
getNum =number/(int) Math.pow(10,(len2--)-1);
sb.append((char) (getNum + 48));
number=number-getNum*(int)Math.pow(10,len2);
}
return sb;
}
return sb.append((char) (number + 48));
}
//拼接工作
public static String Res(int[] arr) {
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < arr.length; i++) {
if (i != arr.length - 1) {
sb.append(numToStrBuil(arr[i])).append(",");
} else {
sb.append(numToStrBuil(arr[i]));
}
}
sb.append("]");
return sb.toString();
}
}