所以我有一个输入,用户创建尽可能多的user-id(int),因为他觉得用逗号分隔:1,3,12,5 ...... 但我必须拆分用户输入的String并将其放入int数组中。 此外,不能有任何重复的用户ID。为什么这段代码错了?
private static Editor inicio(Scanner in){
int[] users=null;
System.out.println("What are the users you wish to create? (Separate by commas)");
String option = in.nextLine();
if (option.contains(",")){
do{
String[] vetorString = option.split(",");
for(int i = 0; i < vetorString.length; i++) {
users[i] = Integer.parseInt(vetorString[i]);
}
} while(hasUtilizador(users));
}
private static boolean hasUtilizador(int[] users){
boolean duplicate=false;
for (int j=0 ; j < users.length ; j++)
for (int k=j+1 ; k < users.length ; k++)
if (k!=j && users[k] == users[j])
duplicate=true;
return duplicate;
}
答案 0 :(得分:0)
这是错误的,因为
users[i] = Integer.parseInt(vetorString[i]);
在空数组上调用。在开始为users
分配值之前,请使用
users = new int[vectorString.length];
答案 1 :(得分:0)
尝试使用String tokenizer并插入&#39;,&#39;作为界定者。