控制台输入一个数组,用空格隔开,写一个函数将数组中所有的0移动到数组的末尾,且数组中非零元素的相对顺序不能变化

例:
输入:
输入
预期输出:
预期输出
实现代码如下:

		Scanner sc = new Scanner(System.in);
		String s=sc.nextLine();
        String[] split = s.split(" ");
        Integer[] sum=new Integer[split.length];
		int v;
		for (int i = 0; i < sum.length; i++) {
			for (int j = i; j < sum.length - 1; j++) {
				if (sum[j] == 0) {
					v = sum[j];
					sum[j] = sum[j + 1];
					sum[j + 1] = v;
				}
			}
		}
		for (int i : sum) {
			System.out.print(i + ",");
		}

搞定!

Java中,你可以通过Scanner类从控制台接收用户输入的一组整数作为字符串数组。首先,你需要创建一个Scanner对象,然后读取用户的输入,分割成字符串数组。以下是步骤: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入一组用空格隔开的数字:"); // 接收用户输入的字符串 String inputString = scanner.nextLine(); // 分割字符串为数组,假设所有输入都是数字 String[] numbersStr = inputString.split("\\s+"); // 使用正则表达式split,匹配一个或多个空格 int[] numbersArray = new int[numbersStr.length]; // 创建一个与字符串数组同样长度的整型数组 for (int i = 0; i < numbersStr.length; i++) { try { numbersArray[i] = Integer.parseInt(numbersStr[i]); // 将每个字符串转换为整数 } catch (NumberFormatException e) { System.out.println("错误:无法将输入 '" + numbersStr[i] + "' 转换为整数。"); break; } } // 打印或处理数组 for (int number : numbersArray) { System.out.print(number + " "); } System.out.println(); // 换行 scanner.close(); } } ``` 在这个程序中,我们先提示用户输入,然后读取一行(包括回车符)。`split("\\s+")`会根据一个或多个空格分隔字符串,得到的是字符串数组。接着我们将这些字符串尝试转换为整数并存储到另一个整数数组中。如果转换失败,会捕获`NumberFormatException`异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值