我们在编码的过程中,常常需要处理一些字符串。例如对字符串的一些拆分,字符串中字符的替代,以及剪切;又例如,需要对字符串进行进制之间的转换,格式的的约束等等。这些经常用到的方法整理如下:
Convert.ToString(...)
1.十进制转二进制
int d = 10;
//十进制转二进制字符串
Console.WriteLine(Convert.ToString(d,2));
//输出: 1010
2.十进制转十六进制字符串
int d = 10;
//十进制转十六进制字符串
Console.WriteLine(Convert.ToString(d, 16));
//输出: a
3. 二进制字符串转十进制数
//二进制字符串转十进制数
string bin = "1010";
Console.WriteLine(Convert.ToInt32(bin,2));
//输出: 10
4.二进制转十六进制
//二进制字符串转十六进制数
string bin2 = "1010";
Console.WriteLine(string.Format("{0:x}",Convert.ToInt32(bin2,2)));
//输出: a
5.十六进制转二进制
//十六进制转二进制字符串
Console.WriteLine(Convert.ToString(0xa,2));
//输出: 1010
6.十六进制转十进制数
//十六进制转十进制数
Console.WriteLine(Convert.ToString(0xa,10));
//输出: 10
7.字符串左边补零
int dn=11;
Console.WriteLine(Convert.ToString(dn, 16).PadLeft(2,'0'));
//输出:0b
8.字符串替换
string strt = "hello world";
strt = strt.Replace("l", "L");
Console.WriteLine("new string is " + strt);
//输出结果:heLLo worLd
9.字符串剪切
string strt = "hello world";
strt = strt.Substring(strt.IndexOf("e")+1);
Console.WriteLine("new2 string is " + strt);
10.字符串拆分
string str2="1,2,3,4.5.6.7";
string[] strM=str2.Split(new char[2]{',','.'});
foreach (string var in strM)
{
Console.Write(var+" ");
}
//输出结果是:
1 2 3 4 5 6 7
11.字符串拆分,复杂一点的,用单词分割的那种
string str3 = "helloMrZhanghelloMissLihelloMrZhao";
string[] strName = System.Text.RegularExpressions.Regex.Split(str3, "hello", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
foreach (string var in strName)
{
Console.Write(var + " ");
}
//输出结果:<pre name="code" class="csharp"> MrZhang MissLi MrZhao
12.字符串替换,复杂一点的,一次可以替换多个
string s = Regex.Replace("abracadabra", "abra", "zzzz");
<pre name="code" class="csharp"> Console.Write(s);
//结果:zzzzcadzzzz
13.去掉字符串空格
string tt=" aaa ";
tt=tt.Trim(); 去字符串首尾空格的函数
tt=tt.TrimEnd(); 去掉字符串尾空格
tt=tt.TrimStart(); 去掉字符串首空格
14.字符串转字符数组,方法1
string str1 = "fafaaf";
string str2;
//字符串的复制,要用静态方法string.Copy(string source)
str2 = string.Copy(str1);
//将字符串转换为字符数组的方法1:str.CopyTo(int sourceindex, char[] destination, int destinationIndex, int count)
char[] chaArr = { 'a', '2', '3', '4', '5', '6' };
str2.CopyTo(0, chaArr, 0, 6);
Console.WriteLine(str2);
foreach (char mychar in chaArr)
{
Console.Write(mychar);
}
Console.WriteLine();
15.字符串转字符数组,方法2
//将字符串转换为字符数组的方法2:ToCharArray()
char[] charArr2 = new char[6];
charArr2 = str2.ToCharArray();
foreach (char mychar1 in charArr2)
{
Console.Write(mychar1);
}
16.字符串转字符数组,方法3 GetBytes()
private static void TestStringBytes()
{
string s = "C#语言";
byte[] b1 = System.Text.Encoding.Default.GetBytes(s);
byte[] b2 = System.Text.Encoding.Unicode.GetBytes(s);
string t1 = "", t2 = "";
foreach (byte b in b1)
{
t1 += b.ToString("") + " ";
}
Console.WriteLine("第1种编码"+t1.ToString());
foreach (byte b in b2)
{
t2 += b.ToString("") + " ";
}
Console.WriteLine("第2种编码" + t2.ToString());
Console.WriteLine();
}
17.字符数组转化为字符串
byte[] bs = { 97, 98, 99, 100, 101, 102 };
string ss = System.Text.Encoding.ASCII.GetString(bs);
//this.textBox1.AppendText("The string is: " + ss + "\n");
Console.WriteLine(ss);
//输出结果是:abcdef
18.科学计数法转化为 普通的计数法1
double a = 7E-7;
string b = a.ToString("0.0000000000");//括号里面的是字符串格式
Console.WriteLine("new is "+b);
19.科学计数法转化为普通的计数法2
//1.字符串值中包含E等科学计数法,比如12E-2,///需要进行转化为普通数值0.12,
//2.转化函数如下:
//代码如下:
private Decimal ChangeDataToD(string strData)
{
Decimal dData = 0.0M;
if (strData.Contains("E"))
{
dData = Convert.ToDecimal(Decimal.Parse(strData.ToString(), System.Globalization.NumberStyles.Float));
}
return dData;
}
// 3.调用的时候直接调用ChangeDataD(strTex//t)
// 4.运行后就是0.12.
20.字符串转化为数值类型,Parse 方法
//字符串数据转换为数值型使用Pares()方法
//字符串转换为整型用int.Parse()
string str="13";
int number=int.Parse(str);
//字符串转换为双精度浮点型 double.Parse()string
string str="14";
double number =double.Parse(str);
字符串转换为单精度浮点型 float.Parse(string)
string str="15";
float number=float.Parse(str);
//不是认识字符串都可以转换为数值型数据,只有能够表示成数字的字符串才可以进行转换,例如名字“张三”,转换成数字没有可以符合的表达式,就不能实现转换
//注意 Pares() 括号中的参数只能是字符串,不能为其他数据类型。
// 注意
// int.TryParse(str) 意思 尝试将非int类型数据转换成int类型数据,转换成功返回true,否则返回false
21.关于 parse 与convert的比较
区别是:
Convert需要参数是obj类型的
Parse需要参数string 类型的