龙空技术网

VS2012 C# 16进制数与字符串的互换

西小岑 620

前言:

当前我们对“字符转16进制java”大约比较注重,各位老铁们都想要知道一些“字符转16进制java”的相关资讯。那么小编同时在网摘上搜集了一些对于“字符转16进制java””的相关资讯,希望大家能喜欢,看官们快快来学习一下吧!

#编程基础##我要上头条#

一、字符串转换为16进制字节数组的步骤

1、将字符串按每两个字符拆分并插入逗号为分隔符;

2、将拆分后的字符串分离为字符串数组;

3、将字符串数组转换成字节数组并检测字符是否合法;

4、将合法转换后的字节数组输出;

二、将16进制数字节数组转换为字符串

1、确定是否需要在字节之间插入空格或其他特殊符号;

2、将字节数据转换为字符;

3、将转换后的字符串连接起来;

4、将连接后的字符串输出;

三、代码

        //字符串转换为16进制字节数组        private byte[] TranslateStringToHexArray(string AsciiString)        {             int cnt = 0;            string inputAsciiArray= "";            //1、将字符串按每两个字符拆分并插入逗号为分隔符            for (int i = 0; i < AsciiString.Length; i++)            {                char temp = AsciiString[i];                if(temp!=' ')                {                    inputAsciiArray += temp;                    cnt++;                    if (cnt >= 2)                    {                        cnt = 0;                        inputAsciiArray += ",";                    }                }            }            //2、将拆分后的字符串分离为字符串数组            string[] bStringArray = inputAsciiArray.Split(new char[] { ',', ' ' });            cnt=0;            for (int i = 0; i < bStringArray.Length; i++)            {                if (bStringArray[i].Trim() != "") cnt++;            }            byte[] bArray1=new byte[cnt];            cnt = 0;            //3、将字符串数组转换成字节数组并检测字符是否合法            for (int i = 0; i < bStringArray.Length; i++)            {                if (bStringArray[i].Trim() != "")                {                    try                    {                        bArray1[i] = Convert.ToByte(bStringArray[i].Trim(), 16);                        cnt++;                    }                    catch (Exception E)     //发生错误时提示非法字符                    {                        //string ErrMsg = " " + bStringArray[i] + " " + E.Message;                        string ErrMsg = " 第 " +(i*2+1).ToString() + " 个字符 "+ bStringArray[i] +" 非法 \r\n" + E.ToString();                        MessageBox.Show(ErrMsg, "提示");                        break;                    }                }            }            //4、将合法转换后的字节数组输出            byte[] bArray2 = new byte[cnt];            for (int i = 0; i < cnt; i++)            {                 bArray2[i]=bArray1[i];            }            return bArray2;        }
        //字节数组转换为字符串        private string TranslateHexArrayToString(byte[] InputByteArray,bool AddBlankFlag)        {            string HexString = "";            if (AddBlankFlag == true)   //确定是否需要插入特殊符号                            {                for (int i = 0; i < InputByteArray.Length; i++)                {                    HexString += InputByteArray[i].ToString("X2")+ " ";     //字节数据转换为字符(并插入空格)                }            }            else                         //字符串终字节间不插入空格             {                for (int i = 0; i < InputByteArray.Length; i++)                {                    HexString += InputByteArray[i].ToString("X2");          //字节数据转换为字符                }            }            return HexString;        }

标签: #字符转16进制java