public static void main(String[] args) {
ArrayList<Integer> numberList = new ArrayList<>();
numberList.add(1);
numberList.add(5);
numberList.add(3);
numberList.add(4);
ArrayList<String> letterList = new ArrayList<>();
letterList.add("a");
letterList.add("9");
letterList.add("c");
letterList.add("F");
for (int x = 0; x < letterList.size(); x++) {
String combo = letterList.get(x);
String letter = combo.replaceAll("[^A-Za-z]", "");
letterList.set(x, letter);
}
bubbleSort(numberList, letterList);
}
public static void bubbleSort(ArrayList<Integer> numberList, ArrayList<String> letterList) {
int n = numberList.size();
int temp = 0;
String temp2 = null;
for (int i = 0; i < n; i++) {
for (int j = 1; j < (n - i); j++) {
if (numberList.get(j - 1) > numberList.get(j)) {
temp = numberList.get(j - 1);
temp2 = letterList.get(j - 1);
numberList.set(j - 1, numberList.get(j));
letterList.set(j - 1, letterList.get(j));
numberList.set(j, temp);
letterList.set(j, temp2);
}
}
}
System.out.println(letterList);
}
应该对numberList进行排序,并通过关闭它如何对numberList进行排序来对letterList进行排序
例如数组{1,5,3,4}和数组{a,9,c,F}它应该将第一个排序为{1,3,4,5},将第二个排序为{a ,C,F,9}。但是,当我尝试打印出letterList时,它会跳过应该在数组中的任何数字。请查看您是否可以提供帮助,抱歉格式化我不知道如何插入代码。
答案 0 :(得分:1)
在这个循环中
for (int x = 0; x < letterList.size(); x++) {
String combo = letterList.get(x);
String letter = combo.replaceAll("[^A-Za-z]", "");
letterList.set(x, letter);
}
您可以用空字符串替换字母列表中的任何数字。
如果您不想这样做,只需删除整个for循环。
编辑:
如果您需要过滤由空格分隔的条目,请执行以下操作:
String myStr; //populate this value with your raw string
String[] mySplit = myStr.split(" "); //split it into an array around spaces
numberList.add(Integer.parse(mySplit[0]));
letterList.add(mySplit[1]);
请注意,这假设您的输入将始终按照您的描述进行格式化,即一个数字后面跟一个空格分隔的字符串。