我遇到了java相关的问题。我需要扫描数字(例如:1 3 4 2 5 6 7
)并将它们放入数组中。问题在于我不知道它有多长。是否有一种指令可以用来确定放在扫描器中的数字长度?
我遇到了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);
}
编辑: 第二种方法:
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()]);
编辑2: 处理同一行中的多个数字,并在空行处终止。
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()]);
nextLine()
。只要输入 -1
,它就会停止。 - Yogendra Singh-1
只是一个例子。你可以使用任何你喜欢的条件。请分享,你想使用什么条件? - Yogendra SinghArrayList<Integer> lst = new ArrayList<Integer>();
lst.add(scanner.getInt());
ArrayList
。只需填充它,最后将其转换为整数数组。或者更好的方法是保留列表并与之一起工作。Scanner in = new Scanner(System.in);
ArrayList<Integer> intList = new ArrayList<Integer>();
while (true) {
System.out.println("Enter a positive integer value (or -1 to stop): ");
int number = in.nextInt();
if (number < 0) break;
intList.add(number);
}
// just use this last line if you really want an array. Work with the list instead if possible.
Integer[] yourFinalArray = intList.toArray(new Integer[0]);
String numbers="1 3 4 2 5 6 7";
Splitter.on(" ").split( numbers );
这将给你一个可迭代对象。如果你坚持要得到一个字符串数组,你可以这样说:
Iterables.toArray(Splitter.on(" ").split( numbers ), String.class)