1、字符串過濾 or 提取字符串
提取字符串:在C# .net開發(fā)中 “ToString()”方法是最常見的,用于將文本轉(zhuǎn)為字符串;
字符串過濾:在處理字符串數(shù)據(jù)或者hex數(shù)據(jù)時,一般都需要去掉 空格 數(shù)組標識0x 標點符號 等等字符,方便后續(xù)進一步處理;
//將文本轉(zhuǎn)為字符串
{
...
string str = textBox1.Text.ToString();
...
}
//過濾字符串
{
string pattern = "[A-Za-z0-9]";
string strRet = "";
//正則匹配,只保留字母和數(shù)字
MatchCollection results = Regex.Matches(ReadString(), pattern);
foreach (var v in results)
{
strRet += v.ToString();
}
return strRet.Replace("0x", "");
}
2、字符串與16進制數(shù)組互轉(zhuǎn)
從字符串轉(zhuǎn)16進制數(shù)組,字符串的每一個字符就是一個byte;
可以用Encoding類的方法完成格式轉(zhuǎn)換,Encoding位于System.Text命名空間下;
//str為輸入字符串
byte[] bytes = Encoding.Default.GetBytes(str);
同樣的,字節(jié)數(shù)組轉(zhuǎn)字符串;
//bytes為輸入字節(jié)數(shù)組
string str = Encoding.Default.GetString(bytes);
3、16進制數(shù)組與16進制字符串互轉(zhuǎn)
16進制數(shù)組無法直接打印和顯示(否則會出現(xiàn)亂碼),這就需要轉(zhuǎn)成對應(yīng)的字符串;
//利用for循環(huán)將16進制數(shù)組轉(zhuǎn)成對應(yīng)的16進制字符串
//如 0x7E,0x5D,0x5A => "7E5D5A"
string strTemp = "";
for (int i = 0; i < bytes.Length; i++)
{
strTemp += bytes[i].ToString("X2");
strTemp += " ";
}
一般對于嵌入式硬件底層,收到的數(shù)據(jù)都是字節(jié)流,不需要轉(zhuǎn)換,可以直接處理;
但是對于PC、Android等非底層驅(qū)動,拿到的數(shù)據(jù)都是字符串形式,這就需要將16進制字符串轉(zhuǎn)16進制數(shù)組;
//str為過濾之后的字符串,只包含字母和數(shù)字
string strTemp = "";
for (int i = 0; i < str.Length/2; i++)
{
strTemp += str.Substring(2 * i, 2);
strTemp += " ";
}
4、字符串與16進制字符串
二者互轉(zhuǎn)又多了一層。
字符串轉(zhuǎn)16進制字符串:先將字符串轉(zhuǎn)為16進制數(shù)組,再將16進制數(shù)組轉(zhuǎn)為16進制字符串;
16進制字符串轉(zhuǎn)字符串:先將16進制字符串轉(zhuǎn)為16進制數(shù)組,再將16進制數(shù)組轉(zhuǎn)為字符串;文章來源:http://www.zghlxwxcb.cn/news/detail-404912.html
5、其它常見轉(zhuǎn)換操作
5.1 字符串替換
小節(jié)1中介紹了正則匹配來過濾字符串的方法,string類本身也有很多方法實現(xiàn)過濾和替換文章來源地址http://www.zghlxwxcb.cn/news/detail-404912.html
//去掉字符串中的控制字符
string str2 = str1.Replace(" ", "").Replace(",", "").Replace("\t", "").Replace("\n", "").Replace("\r", "");
5.2 格式轉(zhuǎn)換
//Encoding為編碼格式轉(zhuǎn)換
//Convert為數(shù)據(jù)格式轉(zhuǎn)換
//常見的轉(zhuǎn)換有
Convert.ToByte();
Convert.ToUInt16();
Convert.ToUInt32();
Convert.ToUInt64();
Convert.ToDateTime();
Convert.ToString();
Convert.ToBase64String();
到了這里,關(guān)于C# 數(shù)據(jù)互轉(zhuǎn) 16進制&16進制字符串&字符串的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!