题解 | #字符串合并处理#
字符串合并处理
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);
}
}
查看9道真题和解析