我是靠谱客的博主 心灵美紫菜,最近开发中收集的这篇文章主要介绍java 字符串不区分大小写排序(可包含非字母字符串)java 字符串不区分大小写排序(可包含非字母字符串),觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
java 字符串不区分大小写排序(可包含非字母字符串)
如题,栗子:
GreaA bEb;Ca
排成 Aaabb CEe;Gr
直接上代码记录下:
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 字符串不区分大小写排序(可包含非字母字符串)java 字符串不区分大小写排序(可包含非字母字符串)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复