很多人帮我解决了这个问题,但是我仍然遇到排序错误......
public static String sorting(){
for (int i = 0; i < pigArray.length; i++){
for (int k = i + 1; k <pigArray.length; k++){
if(pigArray[k].getName().trim().compareTo(pigArray[i].getName().trim())< 0){
String temp = pigArray[i].getName();
pigArray[i].setName( pigArray[k].getName );
pigrray[k].setName(temp);
}
elseif(pigArray[k].getName().trim().compareTo(pigArray[i].getName().trim())> 0){
String temp = pigArray[k].getName();
pigArray[k].setName( pigArray[i].getName );
pigrray[i].setName(temp);
}
else
pigArray[i].setName( pigArray[i].getName );`
String sorted = "";
for (int m = 0; m < pigArray.length; m++){
sorted = sorted + "\n" + pigArray[m].getSortedName();
}
return sorted;
}
private String name;
public void setName(String name){
this.name = name;
}
public String getSortedName() {
return name;
}
pigArray是我存储猪名的对象数组。我(在这里有其他人的帮助,我很感激)已经有一段时间了。输出仍然不太正确:
输入:b,d,c
输出:c,c,d
对我来说,看起来上面代码的一部分是错误的,并按顺序将第二个顺序替换为第二个。我尝试了不同的循环方式,但没有成功。我可以向你保证,我的pigArray正确存储了这些名字。 pigArray [k] .getName()是我如何调用存储在对象数组中的名称。
也请不要arraylist。
谢谢。
答案 0 :(得分:0)
if(pigArray[k].getName().trim().compareTo(pigArray[i].getName().trim())< 0){
String temp = pigArray[i].getName();
pigArray[i].setName( pigArray[k].getName );
pigrray[k].setName(temp);
}
else if(pigArray[k].getName().trim().compareTo(pigArray[i].getName().trim())> 0){
String temp = pigArray[k].getName();
pigArray[k].setName( pigArray[i].getName );
pigrray[i].setName(temp);
}
如果不同,你可以交换pigArray [k]和pigArray [i]的名字。 尝试返回其他分段,比如
if(pigArray[k].getName().trim().compareTo(pigArray[i].getName().trim())< 0){
String temp = pigArray[i].getName();
pigArray[i].setName( pigArray[k].getName );
pigrray[k].setName(temp);
}