字符串合并处理

字符串合并处理

http://www.nowcoder.com/questionTerminal/d3d8e23870584782b3dd48f26cb39c8f

import java.util.*;
import java.io.*;
public class Main{
    public static void ProcessingString(){
        //直接储存十六进制反转对换表,此处不可缺少大写字母的对照biao
        Map<Character,Character> map=new HashMap<Character,Character>();
            map.put('0','0');
            map.put('1','8');
            map.put('2','4');
            map.put('3','C');
            map.put('4','2');
            map.put('5','A');
            map.put('6','6');
            map.put('7','E');
            map.put('8','1');
            map.put('9','9');
            map.put('a','5');
            map.put('b','D');
            map.put('c','3');
            map.put('d','B');
            map.put('e','7');
            map.put('f','F');
            map.put('A','5');
            map.put('B','D');
            map.put('C','3');
            map.put('D','B');
            map.put('E','7');
            map.put('F','F');
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            String s1=sc.next();
            String s2=sc.next();
            char[] ch=(s1+s2).toCharArray(); //两个字符串合并成一个字符串,并将其转换为字符数组
            //取出奇偶索引字符
            char[] ch1=new char[ch.length/2]; //存放偶数位
            char[] ch2=new char[ch.length-ch1.length];  //存放奇数位
            for(int i=0,j=0,k=0;i<ch.length;i++){
                //奇数
                if((i+1)%2!=0){
                    ch2[j]=ch[i];
                    j++;
                }
                else{
                //偶数
                    ch1[k]=ch[i];
                    k++;
                }
            }
            //奇偶已存好,下面开始排序
            Arrays.sort(ch1);
            Arrays.sort(ch2);
            //转换
            for(int i=0,j=0,k=0;i<ch.length;i++){
                //奇数字符
                if((i+1)%2!=0){
                    ch[i]=map.getOrDefault(ch2[j],ch2[j]); //使用getOrDefault方法返回到指定键所映射的值
                    j++;
                }
                else{
                    //偶数字符
                    ch[i]=map.getOrDefault(ch1[k],ch1[k]);
                    k++;
                }
            }
            String s=new String(ch);
            System.out.println(s);
        }
    }
    public static void main(String[] args){
        ProcessingString();
    }
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务