Java 如何通过排序方法组织字符串?

Java 如何通过排序方法组织字符串?,java,arrays,sorting,Java,Arrays,Sorting,这是一个允许用户输入6个随机字母的程序,该程序按顺序对这些字母进行排序。前用户输入j、d、e、l、w、q和程序输出d、e、j、l、q、w 不幸的是,代码异常,无法排序。注意:我使用的是GUI 在public下,我创建了一个类和一个数组,以最终容纳所有输入的字母 class Abc { String letter; Abc (String _letter) { letter = _letter; } } Ar

这是一个允许用户输入6个随机字母的程序,该程序按顺序对这些字母进行排序。前用户输入j、d、e、l、w、q和程序输出d、e、j、l、q、w

不幸的是,代码异常,无法排序。注意:我使用的是GUI

在public下,我创建了一个类和一个数组,以最终容纳所有输入的字母

class Abc {
        String letter;

        Abc (String _letter) {
           letter = _letter;
        }
    }

    ArrayList <Abc> alphabet = new ArrayList <Abc>(3); //note its 3, not 6 like in the example
现在是实际的“排序”部分。这发生在用户按下“播放”按钮之后

注:“d”是我最后一次测试程序时输入的最后一个字母……都是五秒钟前输入的


任何提示或建议将不胜感激

您可以轻松地使用。查看字符串的默认方法是否适合您。如果是这样的话,它就会这样。只要这样做:

List<String> alphabet = new ArrayList<String>();
//populate with Strings
Collections.sort(alphabet);
List alphabet=new ArrayList();
//用字符串填充
集合。排序(字母表);
然后你的字母表就会变异成abc顺序


至于您的实际错误,我无法确定该行发生在何处(如果您告诉我们堆栈跟踪指向何处,我可以)。但看起来您有一些代码试图将字符串转换为数字,但字符串并不表示数字。具体来说,在某个地方你试图把“d”变成一个数字

似乎在代码中的某个地方,您试图将字符串解析为一个数字,当字符串包含字母时,该方法抛出异常。在代码中搜索一些parseInt()或类似的内容。

代码的哪一行导致了异常?在Java中,我们通常使用
char
来保存单个字母。这比使用
String
类要有效得多。您给出的代码中没有任何内容会引发NumberFormatException。请显示发生这种情况的行。很可能是一行使用了
Integer.parseInt()
。这要么是巧合,要么是非常接近的重复:可能的重复:虽然这是最好的方法,但这个问题看起来像是家庭作业
String[] abc = new String[3]; //LINE I FORGOT TO ADD

for (int k = 0; k < abc.length; k++) {
            abc[k] = letterField.getText();

             int x;
            for (int i = 0; i < abc.length; i++) {
                // Asume first value is x
                x = i;
                for (int j = i + 1; j < abc.length; j++) {
                    //find smallest value in array (random)
                    if (abc[j].compareToIgnoreCase(abc[x]) < 0) {
                        x = j;
                    }
                }
                if (x != i) {
                    //swap the values if not in correct order
                    final String temp = abc[i];
                    abc[i] = abc[x];
                    abc[x] = temp;
                }
                textArea.append(abc[i] + "\n");// Output correct order
            }
        }
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "d"
List<String> alphabet = new ArrayList<String>();
//populate with Strings
Collections.sort(alphabet);