1、将字符串按每两个字符拆分并插入逗号为分隔符;
2、将拆分后的字符串分离为字符串数组;
3、将字符串数组转换成字节数组并检测字符是否合法;
4、将合法转换后的字节数组输出;
二、将16进制数字节数组转换为字符串
1、确定是否需要在字节之间插入空格或其他特殊符号;
2、将字节数据转换为字符;
3、将转换后的字符串连接起来;
4、将连接后的字符串输出;
三、代码
//字符串转换为16进制字节数组privatebyte[]TranslateStringToHexArray(stringAsciiString){intcnt=0;stringinputAsciiArray="";//1、将字符串按每两个字符拆分并插入逗号为分隔符for(inti=0;i<AsciiString.Length;i++){chartemp=AsciiString[i];if(temp!=''){inputAsciiArray+=temp;cnt++;if(cnt>=2){cnt=0;inputAsciiArray+=",";}}}//2、将拆分后的字符串分离为字符串数组string[]bStringArray=inputAsciiArray.Split(newchar[]{',',''});cnt=0;for(inti=0;i<bStringArray.Length;i++){if(bStringArray[i].Trim()!="")cnt++;}byte[]bArray1=newbyte[cnt];cnt=0;//3、将字符串数组转换成字节数组并检测字符是否合法for(inti=0;i<bStringArray.Length;i++){if(bStringArray[i].Trim()!=""){try{bArray1[i]=Convert.ToByte(bStringArray[i].Trim(),16);cnt++;}catch(ExceptionE)//发生错误时提示非法字符{//stringErrMsg=""+bStringArray[i]+""+E.Message;stringErrMsg="第"+(i*2+1).ToString()+"个字符"+bStringArray[i]+"非法\r\n"+E.ToString();MessageBox.Show(ErrMsg,"提示");break;}}}//4、将合法转换后的字节数组输出byte[]bArray2=newbyte[cnt];for(inti=0;i<cnt;i++){bArray2[i]=bArray1[i];}returnbArray2;}
//字节数组转换为字符串privatestringTranslateHexArrayToString(byte[]InputByteArray,boolAddBlankFlag){stringHexString="";if(AddBlankFlag==true)//确定是否需要插入特殊符号{for(inti=0;i<InputByteArray.Length;i++){HexString+=InputByteArray[i].ToString("X2")+"";//字节数据转换为字符(并插入空格)}}else//字符串终字节间不插入空格{for(inti=0;i<InputByteArray.Length;i++){HexString+=InputByteArray[i].ToString("X2");//字节数据转换为字符}}returnHexString;}