前面多多少少都带了些字符串的知识,我们首先知道在数据类型上,它属于引用类型,即对应的是物理地址的值,也在字符串的输出中了解它略微奇妙的输出方式,然后是在数组上也使用了字符串数组。现在对其更深入了解,string的由来。
从数组这种数据结构中,知道它来源一个Array类,那么在面向对象编程中的string字符串也同样来源于System.String类
先来几个对该类的使用方法:
// 使用 System.String.Empty 定义一个空字符串
string str2 = String.Empty;
Console.WriteLine("str2 的值为:" + str2);
// 使用 System.String 类
String url = "http://www.xiugo.xyz"; //System.String or String等价string
Console.WriteLine("url 的值为:" + url);
// 使用字符串构造函数定义字符串
char[] letters = { 'H', 'e', 'l', 'l', 'o' };
String message = new String(letters);
Console.WriteLine("message 的值为:" + message);
//方法返回字符串
string[] sarray = { "Hello", "From", "Trust", "Me" };
string messages = String.Join(" ", sarray);
Console.WriteLine("Messages: {0}", messages);
//用于转化值的格式化方法
DateTime waiting = new DateTime(2022, 12, 06, 21, 14, 01);
string chat = String.Format("Message sent at {0:yyyy-MM-dd HH:mm:ss}", waiting);
Console.WriteLine("Message: {0}", chat);
Console.ReadKey();
既然是类,那么就可以在类中定义代码,而string(或 String)关键字是 System.String 类的别名,甚至被c#编译器定义为可直接使用,而无需创建实例的数据类型。但同样可使用其中类的方法,如Empty方法。
char数组转换成一个字符串,在初始化string实例时便可,这是System.string类可传递char*类型。
或者将字符串数组转化成完整的字符串,使用Join方法:
还有我们曾接触过的Format方法,也不要忘了tostring,也是一个“利器”。
String类型也同样拥有属性,一个是不常用到的chars,另一个则是length。
因为除了字符串中转化的字符外还新增了两个空格字符,即Length得到字符串的字符数
下面看看几种方法:
1.比较
public static int Compare( string strA, string strB )
比较两个指定的 string 对象,并返回一个表示他们字符【(Unicode)通用字符集】是否有区别的数字
1 : strA大于strB
0 : strA等于strB
-1 : strA小于strB
但它区分大小写,所以采用下面的方法
public static int Compare( string strA, string strB, bool ignoreCase )
比较两个指定的 string 对象,和上面比较结果一致,但如果布尔参数为真时,该方法不区分大小写。
public bool Equals( string value )
判断当前的 string 对象是否与指定的 string 对象具有相同的值。
常用于条件语句:
2.分割
public string[] Split( params char[] separator )
返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。
这里有个神奇的东西,当你知道字符串数组、length属性后,可以做这样的尝试:
无分割符分割字符,简称“无痛字符流”。
3.合并
public static string Concat( string str0, string str1 )
连接两个 string 对象。
或许鸡肋,但很酷,而且规范。
concat的字符串可高达4个,即实现4个字符串的合并。
4.检索
public bool Contains( string value )
返回一个表示指定 string 对象是否出现在字符串中的值。
Substring(Int32)
检索字符串。在指定的字符位置即int类型数据代表的数字开始并一直到该字符串的末尾, 获得子字符串
也可以指定的长度 Substring(Int32, Int32)。