gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 14:28:02 26 4
gpt4 key购买 nike

这是一个让用户输入6个随机字母的程序,程序将这些字母按顺序排序。 Ex 用户输入 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

用户在文本字段中输入字母后,按下“addButton”,将值添加并保存在数组中。

String letter = letterField.getText();

//Store values in array
Abc a = new Abc(letter);
alphabet.add(a);

现在是实际的“排序”部分。这是在用户按下“播放”按钮后发生的。

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

我最初使用这段代码对整数进行排序,该程序和该程序之间的唯一区别是 int/String ,我目前正在开发的这个程序允许用户输入字母,并且程序不会像这样随机化它们整数程序也是如此。

我原以为这足以完成这个任务并组织一些字母,但显然不是。

对于实际问题,当我输入字母并将它们添加到数组中并按“播放”时,程序会崩溃并弹出一个可爱的错误......

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "d"

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

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

最佳答案

您可以使用Collections.sort轻松做到这一点。查看字符串是否默认 compareTo方法适合你。如果是的话,就会这样排序。只需这样做:

List<String> alphabet = new ArrayList<String>();
//populate with Strings
Collections.sort(alphabet);

然后你的字母表将转变为 abc 顺序。

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

关于java - 如何通过排序方法组织字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17034790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com