我正在尝试输入一个动态数组,大小在任何一点都是未知的,输入就像这样(例子)
1 5 1 4 3 2
但无法弄清楚如何。我有一个部分工作但仍需要完美解决方案的代码。
我的代码:
Scanner sc = new Scanner(System.in);
int T;
T = sc.nextInt();
for(int i=0; i<T;i++){
List<Integer> a = new ArrayList<Integer>();;
int n=0;
String temp;
do{
temp = sc.next();
a.add(Integer.parseInt(temp));
n++;
}while(sc.hasNextInt());
myfxn(a);
}
此代码等待,直到输入一个非数字值然后它继续,我认为这将采取Enter,但它没有。所以我需要以一种他们占据整个数组的方式执行我的代码,直到触发Enter或行结束。
答案 0 :(得分:0)
如果您希望用户输入由空格分隔的值并以新行结束....请尝试此
public static void main(String[] args){
int i = 0;
List<Integer> values = new ArrayList<>();
while(i<args.length){
try{
int temp = Integer.parseInt(args[i]);
values.add(temp);
}catch(){}
i++;
}
}
答案 1 :(得分:0)
我在一些帮助下找到答案,这是代码
Scanner sc = new Scanner(System.in);
int T;
T = sc.nextInt();
sc.nextLine();
for(int i=0; i<T;i++){
List<Integer> a = new ArrayList<Integer>();;
int n=0;
String data = sc.nextLine();
Scanner scanner = new Scanner(data);
while(scanner.hasNextInt()){
a.add(scanner.nextInt());
n++;
}
myfxn(a);
}
答案 2 :(得分:0)
获取输入以及空格作为字符串。
String input= scanner.nextLine();
现在用空格分割该字符串。
String [] array= input.split(" ");
现在输入的值将作为数组提供,如果需要整数,则将其解析。