输入 | 输入两个字符串 |
---|---|
输出 | 输出转化后的结果 |
样例输入 | dec fab |
样例输出 | 5D37BF |
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//Integer i = 4;
//static int reverse(int i)
//System.out.println(Integer.toBinaryString(9));
//System.out.println(Integer.reverse(2));
//StringBuffer str = new StringBuffer("lirao");
//System.out.println(str.reverse());
//static String toString(char[] a) 返回指定数组内容的字符串表示形式。
//char[] toCharArray() 将此字符串转换为一个新的字符数组。
//Integer.valueOf("0101",2).toString()
Scanner sc = new Scanner(System.in);
String str1 = sc.next();
String str2 = sc.next();
String str = str1 + str2;
String oddstr = new String("");
String evenstr = new String("");
for (int i = 0; i < str.length();i++)
if ((i & 1) == 0)
evenstr += str.charAt(i);
else
oddstr += str.charAt(i);
//System.out.println(evenstr+"----"+oddstr);
char[] s1 = evenstr.toCharArray();
char[] s2 = oddstr.toCharArray();
Arrays.sort(s1);
Arrays.sort(s2);
String outstr = new String("");
int even = 0,odd = 0;
for (int i = 0; i < str.length();i++){
if ((i & 1) == 0){
outstr += s1[even];
even++;
}
else {
outstr += s2[odd];
odd++;
}
}
String reoutstr = new String("");
for (int i = 0; i < outstr.length();i++){
if (Character.isDigit(outstr.charAt(i))){
reoutstr += tranfun(outstr.charAt(i) - 48);
}
//Integer.toHexString(int i)
else if(outstr.charAt(i) >= 'a' && outstr.charAt(i) <= 'f'){
//Integer.valueOf("FFFF",16).toString()
reoutstr += Integer.toHexString(tranfun(outstr.charAt(i) - 87));
}
else if(outstr.charAt(i)>='A'&&outstr.charAt(i)<= 'F'){
reoutstr += Integer.toHexString(tranfun(outstr.charAt(i) - 55));
}
else
reoutstr += outstr.charAt(i);
}
char[] strr = reoutstr.toCharArray();
for (int i = 0; i < reoutstr.length();i++){
if (reoutstr.charAt(i)>='a' && reoutstr.charAt(i)<='f'){
strr[i] = (char)(strr[i] - 32);
}
}
for (int i = 0; i < strr.length;i++)
System.out.print(strr[i]);
}
public static int tranfun(int inter){
String str1 = Integer.toBinaryString(inter);
StringBuffer strb = new StringBuffer(str1);
strb.reverse();
String str2 = strb.toString();
//Integer.valueOf("0101",2).toString()
int out = Integer.valueOf(str2,2);
return out;
}
}