标签:
按照指定规则对输入的字符串进行处理。
详细描述:
将输入的两个字符串合并。
对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从小到大排序。这里的下标意思是字符在字符串中的位置。
对排训后的字符串进行操作,如果字符为‘0’——‘9’或者‘A’——‘F’或者‘a’——‘f’,则对他们所代表的16进制的数进行BIT倒序的操作,并转换为相应的大写字符。如字符为‘4’,为0100b,则翻转后为0010b,也就是2。转换后的字符为‘2’; 如字符为‘7’,为0111b,则翻转后为1110b,也就是e。转换后的字符为大写‘E’。
举例:输入str1为"dec",str2为"fab",合并为“decfab”,分别对“dca”和“efb”进行排序,排序后为“abcedf”,转换后为“5D37BF”
接口设计及说明:
/*
功能:字符串处理
输入:两个字符串,需要异常处理
输出:合并处理后的字符串,具体要求参考文档
返回:无
*/
void ProcessString(char* str1,char *str2,char * strOutput)
{
}
输入两个字符串
输出转化后的结果
dec fab
5D37BF
import java.util.*; public class Main{ public static void main(String[] args) { Scanner scan=new Scanner(System.in); StringBuilder sb1=new StringBuilder(); StringBuilder sb2=new StringBuilder(); while(scan.hasNext()) { String str1=scan.next(); String str2=scan.next(); String str=str1+str2; char[] chars=(str1+str2).toCharArray(); for(int i=0;i<str.length();i++) { sb1.append(chars[i]); i++; } for(int i=1;i<str.length();i++) { sb2.append(chars[i]); i++; } char[] cha1=sb1.toString().toCharArray(); char[] cha2=sb2.toString().toCharArray(); Arrays.sort(cha1); Arrays.sort(cha2); char[] chars2=new char[str.length()]; int m=0,n=0; for(int i=0;i<str.length();i++) { if(i%2==0) { chars2[i]=cha1[m]; m++; } else { chars2[i]=cha2[n]; n++; } } for(int i=0;i<str.length();i++) { System.out.print(BIT(chars2[i])); } } } static char BIT(char ch) { switch (ch) { case '0': ch='0';break; case '1': ch='8';break; case '2': ch='4';break; case '3': ch='C';break; case '4': ch='2';break; case '5': ch='A';break; case '6': ch='6';break; case '7': ch='E';break; case '8': ch='1';break; case '9': ch='9';break; case 'A': ch='5';break; case 'B': ch='D';break; case 'C': ch='3';break; case 'D': ch='B';break; case 'E': ch='7';break; case 'F': ch='F';break; case 'a': ch='5';break; case 'b': ch='D';break; case 'c': ch='3';break; case 'd': ch='B';break; case 'e': ch='7';break; case 'f': ch='F';break; default : ch=ch;break; } return ch; } }
标签:
原文地址:http://blog.csdn.net/tingzhiyi/article/details/52192091