题解 | #字符串合并处理#
字符串合并处理
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); } }