一:string轉(zhuǎn)int
//兩種轉(zhuǎn)換方式
//如果字符串不是有效數(shù)值膏执,則會(huì)拋出異常
int.Parse("Hello"); // 拋出異常
var i = int.Parse("1"); // 正常
var i = Convert.ToInt32((string) null); //無(wú)異常驻售,返回: 0
Convert.ToInt32("hello"); //拋出異常
Convert.ToInt32("1"); //正常
解決辦法:封裝一個(gè)工具類(lèi)ParseInteger,讓異常數(shù)據(jù)返回0
public static class ParseInteger
{
/// <summary>
/// 字符串轉(zhuǎn)int
/// </summary>
/// <param name="intStr">要進(jìn)行轉(zhuǎn)換的字符串</param>
/// <param name="defaultValue">默認(rèn)值更米,默認(rèn):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 轉(zhuǎn) Hex16String
/// <summary>
/// 此方法用于將16進(jìn)制的字節(jié)數(shù)組轉(zhuǎn)換成16進(jìn)制的字符串欺栗。
/// </summary>
/// <param name="_hex16Byte">要轉(zhuǎn)換的16進(jìn)制的字節(jié)數(shù)組。</param>
/// <returns></returns>
public static string Hex16ByteToHex16String(byte[] _hex16Byte)
{
string result = string.Empty;
//如果字節(jié)數(shù)組不為空征峦。
if (_hex16Byte != null)
{
for (int i = 0; i < _hex16Byte.Length; i++)
{
//將每一個(gè)字節(jié)數(shù)組轉(zhuǎn)換成16進(jìn)制string類(lèi)型的字符串迟几,用空格分隔開(kāi)。
result += _hex16Byte[i].ToString("X2") + " ";
}
}
return result;
}
三:Hex16String 轉(zhuǎn) String
/// <summary>
/// 此方法用于將16進(jìn)制的字符串轉(zhuǎn)換成普通字符串眶痰。
/// </summary>
/// <param name="_hex16String">要轉(zhuǎn)換的16進(jìn)制的字符串瘤旨。</param>
/// <returns></returns>
private static string Hex16StringToString(string _hex16String)
{
string result = string.Empty;
//以空格分割字符串。
string[] chars = _hex16String.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
//聲明一個(gè)字節(jié)數(shù)組竖伯,其長(zhǎng)度等于分割的字符串的長(zhǎng)度存哲。
byte[] buffer = new byte[chars.Length];
for (int i = 0; i < buffer.Length; i++)
{
//將chars數(shù)組中的元素轉(zhuǎn)換成字節(jié)數(shù)組。
buffer[i] = Convert.ToByte(chars[i], 16);
}
//將字節(jié)數(shù)組轉(zhuǎn)換成字符串七婴。
result = System.Text.Encoding.UTF8.GetString(buffer);
//返回祟偷。
return result;
}