上干货楼~
-------------------------------------------------------------------------------------------------------------------------------
题文:
/*现在有一串字符串,内容是: String str="wo ai heima, heima shi wo jia, Qing Da jia Ai Hu Ta!";
要求:对这个字符串中的字符进行排序, 排序结果如下: aaaabbbbcccccdddd....AAABBBCCCDDD...*/
------------------------------------------------------------------------------------------------------------------------------------
代码区:
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
public class HomeWorke03 {
public static void main(String[] args) {
String str="wo ai heima, heima shi wo jia, Qing Da jia Ai Hu Ta!";
String str2 = str.replaceAll(" ", "");
String str3 = str2.replaceAll(",", "");
String str4 = str3.replaceAll("!", "");
System.out.println(str4);
String s ="";
String s1 ="";
char [] sArr = str4.toCharArray();
for(int i =0 ;i<sArr.length;i++) {
if (sArr<='z'&&sArr>='a') {
s += sArr;
} else if (sArr<='Z'&&sArr>='A') {
s1+=sArr;
}
}
char [] arr1 = s.toCharArray();
char [] arr2 = s1.toCharArray();
List<Character> list = new ArrayList<>();
//定义一个可以排序的 集合 TreeSet
TreeSet<Character> ts = new TreeSet<>(new Comparator<Character>() {
@Override
public int compare(Character o1, Character o2) {
int num = o1-o2;
return num == 0 ? 1 :num;
}
});
for (Character character : arr1) {
ts.add(character);
}
list.addAll(ts);
ts.clear();
for (Character character : arr2) {
ts.add(character);
}
list.addAll(ts);
System.out.println(list);
/*TreeSet<Character> ts1 = new TreeSet<>(new Comparator<Character>() {
@Override
public int compare(Character o1, Character o2) {
int num = o1-o2;
return num == 0 ? 1 :num;
}
});
for (Character character : arr2) {
ts1.add(character);
}
// System.out.println(ts1);
// System.out.println(ts);
list.addAll(ts);
list.addAll(ts1);
for (Character character : list) {
System.out.print(character);
}
//System.out.println(list);
*/
}
}
------------------------------------------------------------------------------------------------------------------------------------------------
总结:
这道题,我又想多了,
本来就用不到40行代码就能解决的问题,
我 写了70 行,
这道题,先进行正则的判断,然后截取,
我是通过treeset集合的 排序特点做的.
将大写字母和小写字母提出来,
然后分两次 使用TreeSet集合,然后清空
然后 分两次将获取到的有序序列给list集合,
还是感觉自己做的太笨了....哎!
|
|