我遇到了java的麻烦.我需要扫描数字(例如1 3 4 2 5 6 7:)并将它们放入数组中.问题是我不知道它会持续多久.是否有一个命令可用于确定扫描仪中放置的数字的长度?
如果您不想使用 ArrayList,作为解决方法,我建议读取整行,然后拆分以获取长度和各个值:
String line = scanner.nextLine();
String[] values = line.split(" ");
int[] intValues = new int[values.length];
int indx = 0;
for(String value:values){
intValues[indx++] = Integer.parseInt(value);
}
Run Code Online (Sandbox Code Playgroud)
编辑:第二种方法:
List<Integer> numList = new ArrayList<Integer>();
int number = 0;
while (number != -1) {
System.out.println("Enter a positive integer value (or -1 to stop): ");
number = Integer.parseInt(in.nextLine());
if (number != -1){
numList.add(number);
}
}
in.close();
Integer[] numArray = numList.toArray(new Integer[numList.size()]);
Run Code Online (Sandbox Code Playgroud)
EDIT2: 处理同一行中的多个数字并以空行终止
List<Integer> numList = new ArrayList<Integer>();
while(true) {
System.out.println("Enter a positive integer value (or -1 to stop): ");
String line = in.nextLine();
if(line.length() <1){
break;
}
String [] numbers = line.split(" ");
for(String num: numbers){
numList.add(Integer.parseInt(num));
}
}
in.close();
Integer[] numArray = numList.toArray(new Integer[numList.size()]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4287 次 |
| 最近记录: |