我是靠谱客的博主 心灵美紫菜,这篇文章主要介绍java 字符串不区分大小写排序(可包含非字母字符串)java 字符串不区分大小写排序(可包含非字母字符串),现在分享给大家,希望可以做个参考。

java 字符串不区分大小写排序(可包含非字母字符串)

如题,栗子:

GreaA bEb;Ca 排成 Aaabb CEe;Gr

直接上代码记录下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Scanner; public class TestString { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { String str = sc.nextLine(); int length = str.length(); List<String> list = new ArrayList<>(); for (int i = 0; i < length; i++) { char c = str.charAt(i); if ((c <= 'Z' && c >= 'A') || (c <= 'z' && c >= 'a')) { list.add(String.valueOf(c)); } } // 由于JDK 的比较器 String.CASE_INSENSITIVE_ORDER 不能比较相同字母的大小,比如A和a, // 如果不要求A和a排序的话可以直接用 Collections.sort(list,String.CASE_INSENSITIVE_ORDER); Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { int comp = String.CASE_INSENSITIVE_ORDER.compare(o1, o2); if (comp == 0) { comp = o1.compareTo(o2); } return comp; } }); StringBuilder sb = new StringBuilder(); int count = 0; for (int i = 0; i < length; i++) { char c = str.charAt(i); if ((c <= 'Z' && c >= 'A') || (c <= 'z' && c >= 'a')) { sb.append(list.get(i)); } else { sb.append(String.valueOf(c)); count++; } } System.out.println(sb.toString()); } } }

最后

以上就是心灵美紫菜最近收集整理的关于java 字符串不区分大小写排序(可包含非字母字符串)java 字符串不区分大小写排序(可包含非字母字符串)的全部内容,更多相关java内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部