3.4C#中的String类
字符串是我们在程序中非常常用的一种类型,C#中有一个String类,它位于System命名空间中,属于.net framework类库,我们一直在用的string只不过是String类在C#中的一个别名,在C#中他们是完全一样的。
3.4.1常用的字符串处理方法
1.bool Equals(string value):比较两字符串值是否相等,相等返回true,不等返回false,与“==”作用一样。
2.int Compare(string strA,string strB):比较两个字符串的大小关系,返回一个整数,若strA<strB,返回值小于0,如果strA>strB,返回值大于0,如果strA=strB,返回值为0。
3.int IndexOf(string value):获取指定的value字符串在当前字符串中第一个匹配项的索引,若找到了value,返回索引,没找到返回-1。
4.int LastIndexOf(string value):获取指定的字符串value在当前字符串中最后一个匹配项的索引,若找到了value,返回其索引,如果没找到,返回-1.
5.string Join(string separator,string[] value):把字符串数组value中的每个字符串用指定的分隔符separator连接,返回连接后的字符串。
6.string[] Split(char separator):用指定的分隔符separator分割字符串,返回分割后的字符串组成的数组。
7.string SubString (int startIndex,int length):从指定的位置startIndex开始检索长度为length的子字符串。
8.string ToLower():获得字符串的小写形式。
9.string ToUper():获得字符串的大写形式。
10.string Trim():去掉字符串两端的空格。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace helloWorld 8 { 9 /// <summary> 10 /// 演示使用方法计算税后工资 11 /// </summary> 12 class Program 13 { 14 static void Main(string[] args) 15 { 16 string email;//邮箱地址 17 string choice;//用户的选择 18 string name;//邮箱用户名 19 20 do//循环程序 21 { 22 Console.WriteLine("please input you email address: "); 23 email=Console.ReadLine(); 24 Console.WriteLine("your email address is:{0}",email); 25 //抽取邮箱用户名 26 int position=email.IndexOf("@");//获取@的索引 27 if(position>0) 28 { 29 //@的索引值就是用户名的长度 30 name=email.Substring(0,position);//获取用户名 31 //输出邮箱用户名 32 Console.WriteLine("your email user name is:{0}",name); 33 } 34 else 35 { 36 Console.WriteLine("your email is validate!"); 37 } 38 Console.WriteLine("go on?yes/no"); 39 choice=Console.ReadLine(); 40 }while(choice.Trim().ToLower().Equals("yes")); 41 Console.ReadLine(); 42 } 43 } 44 }
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace helloWorld 8 { 9 /// <summary> 10 /// 演示使用方法计算税后工资 11 /// </summary> 12 class Program 13 { 14 static void Main(string[] args) 15 { 16 string inputeString;//输入的字符串 17 string[] splitStrings;//分割后的字符串数组 18 string joinString;//连接后的新字符串 19 20 //输入提示 21 Console.WriteLine("please input a string using space split: "); 22 inputeString = Console.ReadLine();//接收输入 23 splitStrings = inputeString.Split(' '); 24 //将分割后的字符串输出 25 Console.WriteLine("\nstring after split: "); 26 foreach (string s in splitStrings) 27 { 28 Console.WriteLine(s); 29 } 30 //将分割后的字符串用下划线连接在一起 31 joinString = string.Join("_", splitStrings); 32 //连接后的字符串输出 33 Console.WriteLine("\nstring after join:{0}",joinString); 34 Console.ReadLine(); 35 } 36 } 37 }
Split()方法不是静态的,所以要使用一个具体的字符串对象来调用,参数是想使用的分隔符,注意参数是字符(char)型的。Join()方法是静态的,所以直接使用string类名来调用,参数有两个:第一个是连接字符串用的分隔符,是一个字符串;第二个是要连接的字符串数组。
3.4.2Format方法
我们常用格式字符串和参数列表的形式输出数据,格式字符串中的{x}叫做占位符,其实Format()方法来格式化字符串,Format()方法允许把字符串,数字,或布尔型的变量插入到格式字符串当中,语法:
string str=string.Format("格式字符串",参数列表);
例如:
string str=string,Format("{0} 乘以 {1} 等于 {2} ",2,3,2*3);
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace helloWorld 8 { 9 /// <summary> 10 /// 演示使用方法计算税后工资 11 /// </summary> 12 class Program 13 { 14 static void Main(string[] args) 15 { 16 string name;//姓名 17 string birthday;//出生年月 18 int height;//身高 19 string bloodType;//血型 20 string planet;//星座 21 string favourFood;//最喜欢的食物 22 string record; //个人档案 23 //接受输入 24 Output("hello,welcome to the world of c#!\nplease input your infomation to build record for you!\nname:"); 25 name = Input(); 26 Output("birthday:"); 27 birthday = Input(); 28 Output("height:"); 29 height = int.Parse(Input()); 30 Output("bloodtype:"); 31 bloodType = Input(); 32 Output("planet:"); 33 planet = Input(); 34 Output("favourFood:"); 35 favourFood = Input(); 36 record = string.Format("name:{0}\nbirthday:{1}\nheight:{2}\nbloodType:{3}\nplanet:{4}\nfavourFood:{5}",name,birthday,height,bloodType,planet,favourFood); 37 Output("this is your record:\n"+record); 38 Input(); 39 } 40 41 private static void Output(string str) 42 { 43 Console.WriteLine(str); 44 } 45 private static string Input() 46 { 47 return Console.ReadLine(); 48 } 49 } 50 }