Java 为什么我的程序在打印字母列表数组时跳过数字?它只打印出A-Z和A-Z publicstaticvoidmain(字符串[]args){ ArrayList numberList=新的ArrayList(); 数字列表。添加(1); 数字列表。添加(5); 数字列表。添加(3); 数字列表。添加(4); ArrayList letterList=新的ArrayList(); 信单。添加(“a”); 信单。添加(“9”); 信函清单。添加(“c”); 信单。添加(“F”); 对于(int x=0;x

Java 为什么我的程序在打印字母列表数组时跳过数字?它只打印出A-Z和A-Z publicstaticvoidmain(字符串[]args){ ArrayList numberList=新的ArrayList(); 数字列表。添加(1); 数字列表。添加(5); 数字列表。添加(3); 数字列表。添加(4); ArrayList letterList=新的ArrayList(); 信单。添加(“a”); 信单。添加(“9”); 信函清单。添加(“c”); 信单。添加(“F”); 对于(int x=0;x,java,arrays,sorting,bubble-sort,Java,Arrays,Sorting,Bubble Sort,它应该对数字列表进行排序,并通过对数字列表进行排序来对字母列表进行排序 例如,数组{1,5,3,4}和数组{a,9,c,F}应该将第一个排序为{1,3,4,5},第二个排序为{a,c,F,9}。然而,当我试图打印出字母列表时,它跳过了数组中应该存在的任何数字。请看能否提供帮助,很抱歉,我不知道如何插入代码。在此循环中 public static void main(String[] args) { ArrayList<Integer> numberList = new Arr

它应该对数字列表进行排序,并通过对数字列表进行排序来对字母列表进行排序

例如,数组{1,5,3,4}和数组{a,9,c,F}应该将第一个排序为{1,3,4,5},第二个排序为{a,c,F,9}。然而,当我试图打印出字母列表时,它跳过了数组中应该存在的任何数字。请看能否提供帮助,很抱歉,我不知道如何插入代码。

在此循环中

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);
}

注意:这假设您的输入将始终按照您所描述的格式设置,即一个数字后跟一个由一个空格分隔的字符串。

如果我正在读取格式为1A、2F、323、93R的文件,其中第一部分是一些数字,而“”后面的第二部分应该是字符串,而不是整数。我该如何在我的数字列表中只添加数字,但在之后仍然将字符串(即使它是整数)添加到我的字母列表中?在
string mySplit
中有一个输入错误;应该阅读
String[]mySplit
。非常感谢@nhouser9。真的救了我的命哈哈。@Copperhorse没问题-如果我的回答对你有帮助,我会很感激你的支持/接受
for (int x = 0; x < letterList.size(); x++) {
    String combo = letterList.get(x);
    String letter = combo.replaceAll("[^A-Za-z]", "");
    letterList.set(x, letter);
}
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]);