【问题标题】:Java, having issues with returned StringJava,返回的字符串有问题
【发布时间】:2017-04-16 04:56:31
【问题描述】:

我得到了一项任务,要为一类 CD(字符串艺术家,字符串标题)进行注册,并且任务中的一个必要条件是将显示元素的顺序更改为按标题而不是按艺术家(按字母顺序)。当我尝试使用下面的代码时,我得到了一些字符串的重复项。有没有人可以帮助我? :P

private ArrayList<CD> reg;

String showSortedTitles() {
    String sortedTitles;
    StringBuilder sb = new StringBuilder();
    ArrayList<CD> temp = new ArrayList<CD>();
    temp.add(reg.get(0));
    for (int i = 1; i < reg.size(); i++) {
        String beftitle = temp.get(i - 1).getTitle();
        String newTitle = reg.get(i).getTitle();
        if ((newTitle.compareTo(beftitle) < 0)) {
            for (int k = 0; k < temp.size(); k++) {
                if (newTitle.equals(temp.get(k).getTitle())) {
                    temp.remove(k);
                }
                if (newTitle.compareTo(temp.get(k).getTitle()) < 0) {
                    temp.add(k, reg.get(i));
                    break;
                } else {
                    temp.add(reg.get(i));
                }
            }
        }
    }
    for (int i = 0; i < temp.size(); i++) {
        CD cd = temp.get(i);
        sb.append(cd.getArtist() + (char) ' ' + (char) '-' + (char) ' ' + cd.getTitle() + (char) '\n');
    }

    sortedTitles = sb.toString();
    return sortedTitles;
}

【问题讨论】:

标签: java string duplicates return stringbuilder


【解决方案1】:

要修复您的代码,您可以执行以下操作:

public static List<CD> sortedTitle(List<CD> list) {
    List<CD> newList = list; // "copy your list"
    for (int i = 0; i < newList.size(); i++) {
        for (int j = i + 1; j < newList.size(); j++) {
            //comparing
            if (newList.get(i).getTitle().compareTo(newList.get(j).getTitle()) > 0) {
                //"replace; change position"
                CD temp = newList.get(i);
                newList.set(i, list.get(j));
                newList.set(j, temp);
            }
        }
    }
    //return sorted list
    return newList;
}

【讨论】:

  • 感谢您的帮助!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 2011-08-16
  • 2020-06-12
  • 2012-11-12
  • 1970-01-01
相关资源
最近更新 更多