我現在有一份清單。當我使用命令列時,我想洗掉兩個物件。
Ex)
javac Main.java
java Main 2 3
a v i
我嘗試更改代碼。我不能那樣做。請幫我。
健康)狀況
使用陣列串列
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
String[] s = {"a", "v", "c", "e", "i"};
List<String> list = new ArrayList<>(s.length);
for (String string : s) {
list.add(string);
}
try {
int index = Integer.parseInt(args[0]);
list.remove(index);
for (String string : list)
System.out.println(string);
} catch(ArrayIndexOutOfBoundsException e){
System.out.println("it is not good");
}catch (IllegalArgumentException e){
System.out.println("it is not good");
}catch (IndexOutOfBoundsException e){
System.out.println("it is not good");
}
}
}
uj5u.com熱心網友回復:
試試下面的代碼。您的代碼只需要一個引數 args[0]。相反,我使用了一個 for 回圈來迭代所有給定的引數。但是,這不會按照您的想法作業,因為洗掉專案時索引會移動。
public static void main(String[] args) {
String[] s = {"a", "v", "c", "e", "i"};
List<String> list = new ArrayList<>(s.length);
for (String string : s) {
list.add(string);
}
try {
for (int i = 0; i< args.length; i ){
int index = Integer.parseInt(args[i]);
list.remove(index);
}
for (String string : list)
System.out.println(string);
} catch(ArrayIndexOutOfBoundsException e){
System.out.println("it is not good");
}catch (IllegalArgumentException e){
System.out.println("it is not good");
}catch (IndexOutOfBoundsException e){
System.out.println("it is not good");
}
}
相反,如果您使用以下內容,它會根據洗掉的專案數調整提供的引數中的索引。
for (int i = 0; i< args.length; i ){
int index = Integer.parseInt(args[i])-i;
list.remove(index);
}
我剛剛意識到代碼不考慮未排序的索引。因此,我添加了一些將為您執行排序的代碼。請改用以下代碼。
int[] numbers = Arrays.stream(args).mapToInt(Integer::parseInt).toArray(); //convert args to int array
System.out.println(Arrays.toString(numbers)); //shows your arguments
Arrays.sort(numbers); //sort your indexes in ascending order
System.out.println(Arrays.toString(numbers)); //shows sorted arguments
for (int i = 0; i< numbers.length; i ){
list.remove(numbers[i] - i);
}
for (String string : list)
System.out.println(string);
請注意,如果您不想使用,則numbers[i]-i可以從陣列的后面開始迭代陣列并改用 numbers[i]
for (int i = numbers.length-1; i>=0; i--){
list.remove(numbers[i]);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/477500.html
下一篇:你能幫我理解這段Java代碼嗎?
