Java如何解决数组的长度

package cn.tx;          //组个最小数

import java.util.Scanner;

public class Demo1 {

    public static boolean obj(int[] arr){//bool为true表示数组不含0,否则含0
        boolean bool = true;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] == 0){
                bool = false;
                break;
            }
        }
        return bool;
    }
    public int[] swap(int[] arr) {//数组不含0
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    int cnt = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = cnt;
                }
            }
        }
        return arr;
    }

    public static void main(String[] args) {//定义一个数组,输入数组元素的值。如果数组长度大于10,且小于等于50,
        int[] arr = new int[10];
        Scanner in = new Scanner(System.in);
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            arr[i] = in.nextInt();
            sum+=arr[i];
        }

        Demo1 demo = new Demo1();
        if (sum>=1){
            //判断数组元素是否含0,若不为0,则进行排序;若为0,考虑数字第一位不能为0
            if (obj(arr)) {
              int[] arr1=demo.swap(arr);
              for (int i = 0; i < arr1.length; i++) {
                  System.out.print(arr1[i]);
              }
            }
            else{
                int[] arr2=demo.swap(arr);
                for (int i = 0; i < arr2.length; i++) {
                    if(arr2[i]!=0){
                        int ar=arr2[i];
                        arr2[i]=arr2[0];
                        arr2[0]=ar;
                        break;
                    }
                }
                for (int i = 0; i < arr2.length; i++) {
                    System.out.print(arr2[i]);
                }
            }
        }
    }
}

当数组长度为10,可运行,数组的长度在(<=50)区间变动,怎么解决,求解!

package ask;

import java.util.Arrays;
import java.util.Scanner;

public class Demo2 {

	public static boolean obj(int[] arr) {// bool为true表示数组不含0,否则含0
		boolean bool = true;
		for (int i = 0; i < arr.length; i++) {
			if (arr[i] == 0) {
				bool = false;
				break;
			}
		}
		return bool;
	}

	public int[] swap(int[] arr) {// 数组不含0
		for (int i = 0; i < arr.length - 1; i++) {
			for (int j = 0; j < arr.length - i - 1; j++) {
				if (arr[j] > arr[j + 1]) {
					int cnt = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = cnt;
				}
			}
		}
		return arr;
	}

	public static void main(String[] args) {// 定义一个数组,输入数组元素的值。如果数组长度大于10,且小于等于50,

		Scanner in = new Scanner(System.in);
		int sum = 0;
		String s = "";

		s = in.nextLine();
		System.out.println(s);
		String[] sarr = s.split("\\s+");
		System.out.println(Arrays.toString(sarr));
		int[] arr = new int[sarr.length];
		for (int i = 0; i < sarr.length; i++) {
			arr[i] = Integer.parseInt(sarr[i]);
			sum += arr[i];
		}
		System.out.println(Arrays.toString(arr));

		Demo2 demo = new Demo2();
		if (sum >= 1) {
			// 判断数组元素是否含0,若不为0,则进行排序;若为0,考虑数字第一位不能为0
			if (obj(arr)) {
				int[] arr1 = demo.swap(arr);
				for (int i = 0; i < arr1.length; i++) {
					System.out.print(arr1[i]);
				}
			} else {
				int[] arr2 = demo.swap(arr);
				for (int i = 0; i < arr2.length; i++) {
					if (arr2[i] != 0) {
						int ar = arr2[i];
						arr2[i] = arr2[0];
						arr2[0] = ar;
						break;
					}
				}
				for (int i = 0; i < arr2.length; i++) {
					System.out.print(arr2[i]);
				}
			}
		}
	}
}

9 7 5 2 1 3 5 2 9 3 5 6 7 2 8
9 7 5 2 1 3 5 2 9 3 5 6 7 2 8
[9, 7, 5, 2, 1, 3, 5, 2, 9, 3, 5, 6, 7, 2, 8]
[9, 7, 5, 2, 1, 3, 5, 2, 9, 3, 5, 6, 7, 2, 8]
122233555677899

抵制不采纳的伸手党

//输入并打印字符串s
Scanner in = new Scanner(System.in);
String s=in.nextLine();
System.out.println(s);

int sum=0;
//创建字符串数组sarr,字符串s用split函数去空格后赋值给sarr,注:\s+表示匹配任意空白字符
String[] sarr=s.split("\\s+");
System.out.println(Arrays.toString(sarr));

/*创建整型数组arr,字符串sarr通过for循环一一赋值给arr,注:Integer.parseInt(String str)
是将有符号的十进制整数字符串转换成为int类型的数*/
int[] arr = new int[sarr.length];
for (int i = 0; i < sarr.length; i++) {
    arr[i]=Integer.parseInt(sarr[i]);
    sum+=arr[i];
}
System.out.println(Arrays.toString(arr));

是这样吗