一:string转int
//两种转换方式
//如果字符串不是有效数值,则会抛出异常
int.Parse("Hello"); // 抛出异常
var i = int.Parse("1"); // 正常
var i = Convert.ToInt32((string) null); //无异常,返回: 0
Convert.ToInt32("hello"); //抛出异常
Convert.ToInt32("1"); //正常
解决办法:封装一个工具类ParseInteger,让异常数据返回0
public static class ParseInteger
{
/// <summary>
/// 字符串转int
/// </summary>
/// <param name="intStr">要进行转换的字符串</param>
/// <param name="defaultValue">默认值,默认:0</param>
/// <returns></returns>
public static int ParseInt(string intStr, int defaultValue = 0)
{
int parseInt;
if (int.TryParse(intStr, out parseInt))
return parseInt;
return defaultValue;
}
}
二:Hex16Byte 转 Hex16String
/// <summary>
/// 此方法用于将16进制的字节数组转换成16进制的字符串。
/// </summary>
/// <param name="_hex16Byte">要转换的16进制的字节数组。</param>
/// <returns></returns>
public static string Hex16ByteToHex16String(byte[] _hex16Byte)
{
string result = string.Empty;
//如果字节数组不为空。
if (_hex16Byte != null)
{
for (int i = 0; i < _hex16Byte.Length; i++)
{
//将每一个字节数组转换成16进制string类型的字符串,用空格分隔开。
result += _hex16Byte[i].ToString("X2") + " ";
}
}
return result;
}
三:Hex16String 转 String
/// <summary>
/// 此方法用于将16进制的字符串转换成普通字符串。
/// </summary>
/// <param name="_hex16String">要转换的16进制的字符串。</param>
/// <returns></returns>
private static string Hex16StringToString(string _hex16String)
{
string result = string.Empty;
//以空格分割字符串。
string[] chars = _hex16String.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
//声明一个字节数组,其长度等于分割的字符串的长度。
byte[] buffer = new byte[chars.Length];
for (int i = 0; i < buffer.Length; i++)
{
//将chars数组中的元素转换成字节数组。
buffer[i] = Convert.ToByte(chars[i], 16);
}
//将字节数组转换成字符串。
result = System.Text.Encoding.UTF8.GetString(buffer);
//返回。
return result;
}