gpt4 book ai didi

java - 字符串根据长度排序,然后根据大小写排序

转载 作者:行者123 更新时间:2023-12-01 07:45:06 25 4
gpt4 key购买 nike

我正在尝试对字符串列表进行排序,该列表根据长度和区分大小写进行排序。

示例:排序前:[a, abc, b, fe, e, ABC, Abc]

排序后:[a, b, e, fe, abc, Abc, ABc, ABC]

public static void main(String[] args) {

    List<String> stringList = new ArrayList<>();
stringList.add("a");
stringList.add("abc");
stringList.add("b");
stringList.add("fe");
stringList.add("e");
stringList.add("ABC");
stringList.add("Abc");
stringList.add("ABc");

System.out.print("Before Sort:");
System.out.println(stringList);

Collections.sort(stringList, new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
if(o1.length() > o2.length())
{
return 1;
}
else if(o1.length() < o2.length()){
return -1;
}
else if(o1.length() == o2.length()){
return return o1.compareTo(o2);
}
else return 0;
}
});
System.out.print("After Sort :");
System.out.println(stringList);
}

上面的代码根据长度对列表进行排序,但无法根据区分大小写进行排序。

它给出了输出,[a、b、e、fe、ABC、ABc、Abc、abc]

预期输出排序后:[a, b, e, fe, abc, Abc, ABc, ABC]

感谢任何帮助。

最佳答案

我认为你需要考虑更多的情况,如AFefE。看来你的排序没有自然的流程。下面的代码可以获得您想要的输出。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
*
* @author blj0011
*/
public class JavaApplication114
{

/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
// TODO code application logic here
List<String> stringList = new ArrayList<>();
stringList.add("a");
stringList.add("abc");
stringList.add("b");
stringList.add("fe");
stringList.add("e");
stringList.add("ABC");
stringList.add("Abc");
stringList.add("ABc");

System.out.print("Before Sort:");
System.out.println(stringList);

Collections.sort(stringList, new Comparator<String>()
{
@Override
public int compare(String o1, String o2)
{
if (o1.length() > o2.length()) {
return 1;
}
else if (o1.length() < o2.length()) {
return -1;
}
else if (o1.length() == o2.length()) {
if (o1.length() == 1) {
return o1.compareTo(o2);
}
else {
return o2.compareTo(o1);
}

}
else {
return 0;
}
}
});
System.out.print("After Sort :");
System.out.println(stringList);
}
}

Output:

run:
Before Sort:[a, abc, b, fe, e, ABC, Abc, ABc]
After Sort :[a, b, e, fe, abc, Abc, ABc, ABC]
BUILD SUCCESSFUL (total time: 0 seconds)

关于java - 字符串根据长度排序,然后根据大小写排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54769057/

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