题解 | #字符串合并处理#

字符串合并处理

https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.next() + in.next();
        ArrayList<Character> list1 = new ArrayList<>();
        ArrayList<Character> list2 = new ArrayList<>();
        for (int i = 0; i < s.length(); i++) {
            if (i % 2 == 0) {
                list1.add(s.charAt(i));
            } else {
                list2.add(s.charAt(i));
            }
        }
        Collections.sort(list1);
        Collections.sort(list2);
        //重新拼接
        StringBuilder ss = new StringBuilder();
        for (int i = 0; i < list1.size(); i++) {
            ss.append(list1.get(i));
            if (i < list2.size()) {
                ss.append(list2.get(i));
            }
        }
        //对字符进行转换操作 进制转换
        for (int i = 0; i < ss.length(); i++) {
            String temp = ss.substring(i, i + 1);
            if (temp.matches("[0-9a-fA-F]")) {
                //把16进制转换成10进制,再转换成二进制
                StringBuilder binary = new StringBuilder(Integer.toBinaryString(
                            Integer.parseInt(temp, 16)));
                int len = binary.length();
                //补零
                for (int j = 0; j < 4 - len; j++) {
                    binary.insert(0, "0");
                }
                binary = binary.reverse();
                int n = Integer.parseInt(binary.toString(), 2);
                String hexS = Integer.toHexString(n).toUpperCase();
                ss.replace(i, i + 1, hexS);
            }
        }
        System.out.println(ss);
    }
}

全部评论

相关推荐

牛客583549203号:腾讯还好,况且实习而已,实习生流动性很大,属于正常现象,记得和HR委婉解释
点赞 评论 收藏
分享
秋盈丶:后续:我在宿舍群里和大学同学分享了这事儿,我好兄弟气不过把他挂到某脉上了,10w+阅读量几百条评论,直接干成精品贴子,爽
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务