题解 | #字符串排序#

字符串排序

https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
//        // 注意 hasNext 和 hasNextLine 的区别
//        while (in.hasNextLine()) { // 注意 while 处理多个 case
//            String s = in.nextLine();
//        }
        List<Character> list = new ArrayList<>();
        List<Integer> pos = new ArrayList<>();
        String s = in.nextLine();
        char[] chars = s.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            if ((chars[i] >= 'a' && chars[i] <= 'z') || (chars[i] >= 'A' && chars[i] <= 'Z')) {
                list.add(chars[i]);
                pos.add(i);
            }
        }
        Collections.sort(list, new Comparator<Character>() {
            @Override
            public int compare(Character o1, Character o2) {
                int x = (o1.charValue() >= 'a' && o1.charValue() <= 'z') ? o1.charValue() - 32 : o1.charValue();
                int y = (o2.charValue() >= 'a' && o2.charValue() <= 'z') ? o2.charValue() - 32 : o2.charValue();;
                return x - y;

            }
        });

        for (int i = 0; i < pos.size(); i++) {
            chars[pos.get(i)] = list.get(i);
        }
        String s1 = String.valueOf(chars);
        System.out.println(s1);
    }
}

全部评论

相关推荐

03-12 15:34
已编辑
北京邮电大学 Java
呓语0613:老哥你这黑马点评改造是在哪里看的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务