如何用Shell脚本从控制台输入多值并赋值给数组以遍历?
在控制台输入多值赋值数组并通过foreach遍历
嘿,这事儿其实挺容易实现的,我给你用两种常用编程语言写了示例,看完就能上手:
C# 实现方案
我们可以先读取控制台输入的整行内容,按空格分割成字符串数组,再转换成数值类型数组,之后就能用foreach轻松遍历了:
// 读取控制台输入的一行内容,按空格分割(自动忽略多余空格) string[] inputStrArr = Console.ReadLine().Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries); // 把字符串数组转成int类型数组 int[] arr = Array.ConvertAll(inputStrArr, int.Parse); // 用foreach循环遍历输出数组内容 Console.WriteLine("遍历到的数组元素:"); foreach (int num in arr) { Console.WriteLine(num); }
小提示:StringSplitOptions.RemoveEmptyEntries这个参数很有用,能避免用户输入多个空格时产生空的数组元素,让程序更严谨。
Java 实现方案
Java的思路和C#差不多,用Scanner来读取输入,处理逻辑如下:
import java.util.Scanner; public class ArrayInputDemo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 读取整行输入,用正则匹配一个或多个空白字符分割 String[] inputStrArr = scanner.nextLine().split("\\s+"); // 初始化int数组并完成类型转换 int[] arr = new int[inputStrArr.length]; for (int i = 0; i < inputStrArr.length; i++) { arr[i] = Integer.parseInt(inputStrArr[i]); } // foreach循环遍历数组 System.out.println("遍历到的数组元素:"); for (int num : arr) { System.out.println(num); } scanner.close(); } }
额外提醒
- 如果需要其他数值类型(比如
double),只需要把对应的转换方法换掉就行,比如C#里用double.Parse,Java里用Double.parseDouble。 - 要是担心用户输入非数字导致程序崩溃,可以加个异常处理逻辑,比如C#用
int.TryParse逐个验证转换,Java用try-catch包裹转换步骤。
内容的提问来源于stack exchange,提问作者Arun
相关产品推荐
相关产品推荐

