在编写未知长度录入数据的相关程序中碰到的小问题,现总结如下:
以下为完整的实现代码:
String str[]=null;
Scanner sc=new Scanner(System.in);
System.out.println("请输入一组整数,以逗号分隔:");
str=sc.nextLine().split(",");
int array[]=new int [str.length];
for (int i=0;i< str.length;i++){
array[i]=Integer.valueOf(str[i]);
}
代码分块理解:
首先创建一个字符串数组,并且设置为null;
String str[]=null;
Scanner sc=new Scanner(System.in);
之后写Scanner部分,输出 请输入一组整数,以逗号分隔:
Scanner sc=new Scanner(System.in);
System.out.println("请输入一组整数,以逗号分隔:");
然后利用Scanner中的nextline模块,其作用是接受键盘输入的字符串,其后的split可以将键盘录入的数据进行规定的符号进行分割,这样就可以实现将未知数目的数组进行创建,只不过此时的数组类型是String。
str=sc.nextLine().split(",");
先创建一个int类型的数组,此时创建时,就可以将数组长度写为之前创建的String类型数组的长度。
int array[]=new int [str.length];
现在利用结构转化使得String类型的数组变为int类型,当然利用循环进行每个数据的转换。用到的功能模块为Integer.valueOf,作用是将str中的每个字符串转换为整数,并将整数存储在数组array中。
for (int i=0;i< str.length;i++){
array[i]=Integer.valueOf(str[i]);
}