(1)取字符串长度
(2)字符串转为比特码 GetBytes(
(3)字符串相加 推荐StringBuilder sb = new StringBuilder();sb.Append(
(4)截断字符串的一部分 变量.SubString(起始位置,截取位数);
(5)查指定位置是否为空字符 char.IsWhiteSpace(字符串变量,位数);
(6)查字符是否是标点符号 char.IsPunctuation(‘字符');
(7)把字符转化为数字,查代码点 (int)'变量'
(8)把数字转为字符,查代码代表的字符 (char)代码
(9)清除字符串前后包含的空格 变量.Trim()
(10)替换字符串:字符串变量.Replace(原字符串,新的字符串)
(11)删除字符串最后一个字符的3种方法
代码如下 | 复制代码 |
Eg:string s = “1,2,3,4,5,”; a) s.SubString(0,s.Length-1)//删除最后一个逗号 b) s.ToString().RTrim(‘,');//删除逗号,跟的变量是任何有效的字符串 c) s.TrimEnd(‘,');//删除逗号,后面跟的变量是数组 char[] mychar={‘5',','};//删除‘5‘以及',‘ s.TrimEnd(mychar); |
(12)Split的3种方法
a) 用单个字符来分隔
b) 用多个字符来分隔
c) 用字符串来分隔 Regex.Split(
(13)几种输出字符串的格式
代码如下 | 复制代码 |
ToString(“n”); //生成12,345.00 ToString(“C”); //生成¥12,345.00 ToString(“e”); //生成1.234500e+004 ToString(“f4”); //生成12345.0000 ToString(“x”); //生成3039(16进制) ToString(“p”); //生成1,234,500.00% |
(14)把123456789转换为12-345-6789的3种方法
代码如下 | 复制代码 |
(a)A = int.Parse(a).ToString(“##-###-####”); (b)A = a.Insert(5,”-”).Insert(2,“-”); (c)Using System.Text.RegularExpressions; //先引用 Regex reg = new Regex(@“^(d{2})(d{3})(d{4})$”); A = reg.Replace(a,”$1-$2-$3”); |
(15)输出21个A的简单方法 striing str = new string(‘A',21);
(16)得到随机数的方法
代码如下 | 复制代码 |
Ramdom r = new Ramdom(); Int n1 = r.Next(); //返回非负随机整数 Int n2 = r.Next(10); //返回一个小于所指定最大值(10)的非负随机整数 Int n3 = r.Next()%10; //返回一个小于所指定最大值(10)的非负随机整数 Int n4 = r.Next(1,20); //返回一个指定范围(1~20)内的随机整数 Int n5 = r.NextDouble(); //得到一个介于0.0~1.0之间的随机整数 |
(17)Int32.TryParse(),Int32. Parse(),Convert.ToInt32()比较:
都是将字符串转换为整数数字
代码如下 | 复制代码 |
Int32.TryParse(string,out int); Int = Int32. Parse(string); Int = Convert.ToInt32(string); |
比较:Convert.ToInt32()在null时不抛出异常而是返回零;Int32. Parse()会抛出异常;Int32.TryParse()不抛出异常,会返回true或false来说明解析是否成功。如果解析错误,则out调用放将会得到零值;
从性能上讲,Int32.TryParse()优于Int32.Parse(),而Int32.Parse()优于Convert.ToInt32()。
建议:在.NET1.1下用Int32.Parse();在.NET2.0下用Int32.TryParse()。
补充
代码如下 | 复制代码 |
//获得汉字的区位码
// reverse 倒序输出 string str = Console.ReadLine(); |
对字符串处理的常见功能
代码如下 | 复制代码 |
* 计算字符串的长度 * string myString = "This is a test!"; * 转换大小写 * myString = myString.ToLower(); //所有字符转换成小写 * 删除前后空格 * myString = myString.Trim(); //同时删除字符串前后的空格 * 添加空格 * myString = myString.PadRight(14,' '); //当字符串长度不够14位时,在他的右边用指定字符填充 * 拆分字符串 * string[] nStrs = myString.Split(' ',3); //按照空格进行拆分,并且返回前三个字符串
string a = myString.Substring(2,2); //从myString字符串的第三位开始获取两个字符,因为索引起始位是0 * 替换字符串中的字符 * string a = myString.Replace("i","o"); //将这个字符串中的所有“i”替换成“o”
string myString = "This is a test!"; |
要想得到一个可读写的字符数组,你可以这样。
char[] myChars = myString.ToCharArray();
特殊字符的表示方法
由于在C#中使用双引号划分字符串的开始和结束,那么对于一些特殊字符,例如双引号本身就需要使用叫做转义字符的辅助字符来表示了
字符串的比较等常用操作
1.字符串比较
代码如下 | 复制代码 |
string.Compare(x,y); <0: x 小于 y。 或 x 为空引用。 =0: x 等于 y。 >0: x 大于 y。 或 y 为空引用。 string.Equals(x,y); true x 等于 y。 false x 不等 y。 2.从字符串中提取子串 StringBuilder 类没有支持子串的方法,因此必须用String类来提取。 string mystring="My name is ynn."; //Displays "name is ynn." Console.WriteLine(mystring.Substring( 3 )); //Displays "ynn" Console.WriteLine(mystring.Substring( 11,3 )); |
3.格式化数字
c、C 货币格式。
d、D 十进制格式。
e、E 科学计数(指数)格式。
f、F 固定点格式。
g、G 常规格式。
n、N 数字格式。
r、R 往返格式,确保将已转换成字符串的数字转换回数字时具有与原数字相同的值。
x、X 十六进制格式。
代码如下 | 复制代码 |
double val=Math.PI; Console.WriteLine(val.ToString( )); //displays 3.14159265358979 Console.WriteLine(val.ToString("E"));//displays 3.141593E+000 Console.WriteLine(val.ToString("F3");//displays 3.142 int val=65535; Console.WriteLine(val.ToString("x")); //displays ffff Console.WriteLine(val.ToString("X")); //displays FFFF Single val=; Console.WriteLine(val.ToString("p")); //displays 12.30 % Console.WriteLine(val.ToString("p1")); //displays 12.3 % |
默认格式化会在数字和百分号之间放入一个空格。定制方法如下:
其中NumberFormatInfo类是System.Globalization命名空间的一个成员,因此该命名空间必须导入到程序中。
代码如下 | 复制代码 |
Single val=; object myobj=NumberFormatInfo.CurrentInfo.Clone( ) as NumberFormatInfo; NumberFormatInfo myformat=myobj as NumberFormatInfo; myformat.PercentPositivePattern=1; Console.WriteLine(val.ToString("p",myformat)); //displays 12.30%; Console.WriteLine(val.ToString("p1",myformat)); //displays 12.3%; |
格式化具有很大的灵活性。下面的例子演示一个没有意义的货币结构:
代码如下 | 复制代码 |
double val=1234567.89; int [] groupsize={2,1,3}; object myobj=NumberFormatInfo.CurrentInfo.Clone( ); NumberFormatInfo mycurrency=myobj as NumberFormatInfo; mycurrency.CurrencySymbol="#"; //符号 mycurrency.CurrencyDecimalSeparator=":"; //小数点 mycurrency.CurrencyGroupSeparator="_"; //分隔符 mycurrency.CurrencyGroupSizes=groupsize; // 输出 #1_234_5_67:89 Console.WriteLine(val.ToString("C",mycurrency)); |
最后一个类自己慢慢看吧
代码如下 | 复制代码 |
|
1)截取字符串
使用substring方法,而该方法在c#中有两个重载函数:substring(参数),substring(参数1,参数2),用法如下:
代码如下 | 复制代码 |
string A ="I'm a string"; sting B=A.substring(1); sting C=A.substring(1,6); |
其中传入的参数1为字符串的起始位置,字符子串B将截取字符串A的第2个字符之后所有的字符.
字符子串C将截取字符串A的第2个字符之后的长度为6的字符串.
参数必须大于等于0,如果小于0将抛出ArgumentOutOfRange异常.
2)字符串转化为字符数组
首先,string类型变量可以看成为char变量的只读数组,这样就可以使用如下语法访问每个字符:
string A = "i'm a string"
char B =A[1];
而要是把字符串变为可写的char数组,可以使用TocharArray()方法:
char [] = A.Tochararray();
使用B.Length获取字符串的长度.
3)转换大小写
4)删除字符串种的空格或者指定的字符
删除字符串前后的空格:
删除指定的字符:
首先利用char数组指定特定字符
char[] C ={' ','e',}
也可以使用Trimstart(),TrimEnd()分别去除前后的空格或者指定的字符
5)在字符串前后添加空格或者指定的字符
6)indexof()的用法
IndexOf()
查找字串中指定字符或字串首次出现的位置,返回首索引值,如:
str1.IndexOf("字"); //查找“字”在str1中的索引值(位置)
str1.IndexOf("字串");//查找“字串”的第一个字符在str1中的索引值(位置)
str1.IndexOf("字",start,end);//从str1第start+1个字符起,查找end个字符,查找“字”在字符串STR1中的位置[从第一个字符算起]注意:start+end不能大于str1的长度
7)insert()的用法
参数1为插入子字符串的其实位置,参数2为要插入的子字符串
8)比较字符串的大小
Compare(str1,str2)——比较两个字符串 str1,str2的大小,如果大于返回正数,等于返回0,小于返回负数
9)替换指定的字符串
String.Replace(参数1,参数2)——用指定的字符替换字符串中的指定字符
字符串的处理方法还有很多,这里就不一一列举了,以后用到在慢慢学习.