题解 | #字符串排序#
字符串排序
http://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
Java解法
使用List类
'list_l.add(...)' 添加元素
'list_l.sort(new Comparator(){})' 自定义排序方法,对list_l进行排序
使用StringBuilder类进行String构造,可用append添加字符,最后用toString转成String类型
'stringBuilder_sb.append(char_c)'
'stringBuilder_sb.toString()'
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.nextLine();
List<Character> letters = new ArrayList<>();
//得到所有字母
for(int i=0;i<s.length();i++) {
if(Character.isLetter(s.charAt(i))==true) {
letters.add(s.charAt(i));
}
}
//对字母进行排序
letters.sort(new Comparator<Character>() {
@Override
public int compare(Character arg0, Character arg1) {
return Character.toLowerCase(arg0)-Character.toLowerCase(arg1);
}
});
StringBuilder strb = new StringBuilder();
for(int i=0,j=0;i<s.length();i++) {
if(Character.isLetter(s.charAt(i))==true) {
strb.append(letters.get(j++));
}else {
strb.append(s.charAt(i));
}
}
System.out.println(strb.toString());
}
}