C#中string 类型的常⽤⽅法总结
在C#语⾔中,字符串是System.的⼀个引⽤类型,但与其他引⽤类型不同的是,C#将字符串视为⼀个基本类型,它可以申请为⼀个常量,也可以直接给它赋值。由于C#中的字符串是由System.String类派⽣⽽来的引⽤对象,因此可以使⽤String类的⽅法来对字符串进⾏各种操作。下⾯通过⼏个例⼦来讲述String类的⼏个重要⽅法以及字符串拘留池机构。
1、字符串的复制: (1)、String.Copy(str):参数str为要复制的字符串,它回返回⼀个与该字符串相等的字符串 (2)、
SreStr.CopyTo(StartOfSreStr, DestStr, StartOfDestStr, CopyLen):它必须被要复制的字符串实例调⽤,它可以实现复制其中某⼀部分到⽬标字符串的指定位置
Copy()⽅法只适⽤于需要吧某个字符串完整复制到另⼀个字符串中的情况,相⽐之下CopyTo()则⽐较灵活。
2、字符串的⽐较: String类字符串⽐较⼤概有4种⽅法:Compare(),CompareTo(), CompareOrdinal()和Equals(). Compare()⽅法是CompareTo()的静态版本.⽽Equals()与”==”是等价的,只要使⽤”==”运算符,就会调⽤Equals()⽅法。CompareOrdinal()对两个字符串进⾏⽐较,不考虑本地化语⾔和⽂化。
(1)、String.Compara(str1, str2):
(2)、String.CompareTo(string value):该实例与value的值进⾏⽐较。返回:如果string⼤于value则返回1,如果string⼩于value则返回-1,如果两个相等则返回0。
(3)、String.CompareOrdinal(str1, str2):是将整个字符串每5个字符(10个字节)分成⼀组,然后逐个⽐较,到第⼀个不相同的ASCII 码后退出循环。并且求出两者的ASCII码的差。【我不明⽩为什么要实现的如此⿇烦。但是在CLR via C#上有这样的话:这个⽅法⽐其他⽅法都要快。应该是有⼀定道理的吧。所以当我们⽐较⼤⼩的时候,尽量使⽤CompareOrdinal⽅法。】
(4)、String.Equals(string value):⽤于⽐较两个字符串是否相等。返回:如果和String相等则为true;否则为false。【由于是⾮安全代码的⽐较,所以效率要⽐我们⽤安全代码⾼得多】namespace StringTest { class Program { static void Main(string [] args) { string SourceStr = "hello everyOne!!"; string CopyStr = String.Copy(SourceStr); char [] CopyToStr = new char [20]; SourceStr.CopyTo(6, CopyToStr, 0, 10); //该函数必须有⼀个实例调⽤,并且第⼆个参数为字符串数组 Console.WriteLine("CopyStr = " + CopyStr); Console.Write("CopyToStr = "); Console.WriteLine(CopyToStr); } }}结果:CopyStr = hello everyOne!!
CopyToStr = everyOne!!
1
2
3
4
5
6
7
8
9
10
c++中string的用法11
12
13
14
15
16
17
18
其实字符串的⽐较还有⼀个⽅法Object.ReferenceEquals(str1, str4),不过它是⽐较两个字符串的对象引⽤是否相同,例⼦与使⽤请查看
第11条:字符串拘留池机构。
3、字符串的查: (1)、String.Contains(Findstr):参数:Findstr为要查的字符或字符串;功能:指定字符串是否包含⼀个字串,返回值的boolean类型,即只有true和false。 (2)、String.IndexOf(Findstr):参数:Findstr为要查的字符或字符串;功能:查FindStr在字符串中第⼀次出现的位置,返回值为第⼀次出现的下标,没有到则返回-1. (3)、String.LastIndexOf(FindStr):参数:Findstr为要查的字符或字符串;功能:查FindStr在字符串中最后⼀次出现的位置,返回值为最后⼀次出现的下标,没有到则返回-1。 static void Main(string [] args) { int nResult = 0; bool bResult = false ; string str1 = "you are very happy!!"; string str2 = "I am very happy!!"; string str3 = "I am very happy!!"; nResult = string .Compare(str1, str2); Console.WriteLine("Compare(str1, str2) = " + nResult); nResult = str1.CompareTo(str2); Console.WriteLine("str1.CompareTo(str2) = " + nResult); nResult = string .CompareOrdinal(str1, str2); Console.WriteLine("CompareOrdinal(str1, str2) = " + nResult); bResult = str2.Equals(str3); Console.WriteLine("str2.Equals(str3) = " + bResult); Console.WriteLine("str2 == str3 " + (str2 == str3 ? true : false )); } }}结果:Compare(str1, str2) = 1 str1.CompareTo(str2) = 1 CompareOrdinal(str1, str2) = 48 str1.Equals(str2) = True str2 == str3 True
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
(4)、String.IndexOf(Findstr)还有⼀个重载函数String.indexof(),它的⽤法如下:
(5)、String.indexof():在字符串中从前向后定位字符和字符串;所有的返回值都是指在字符串的绝对位置,如为空则为-1 。
4、字符串的截取: (1)、String.SubString(StartIndex):参数:StartIndex为要进⾏截取的开始下标;功能:保留字符串中下标从
StartIndex开始后⾯的全部字符串。 (2)、String.SubString(StartIndex, Len):参数:StartIndex为要开始截取的下标,Len为要截取的长度;功能:保留字符串中下标从StartIndex开始后⾯的Len个长度的字符串。 static void Main(string [] args) { int nResult = 0; bool bResult = false ; string str = "hello everyOne!!"; bResult = str.Contains("e"); Console.WriteLine("Contains(\"e\") = " + bResult); nResult = str.IndexOf("e"); Console.WriteLine("IndexOf(\"e\") = " + nResult); nResult = str.LastIndexOf("e"); Console.WriteLine("LastIndexOf(\"e\") = " + nResult); } }}结果:Contains("e") = True IndexOf("e") = 1 LastIndexOf("e") = 13
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22namespace StringTest { class Program { static void Main(string [] args) { int nResult = 0; string str = "hello everyOne!!"; nResult = str.IndexOf('e'); //查该字符串中的第⼀次'e'出现位置 Console.WriteLine("IndexOf('e') = " + nResult); nResult = str.IndexOf('e', 1); //查该字符串中的第⼀次'e'出现位置 Console.WriteLine("IndexOf('e', 1) = " + nResult); nResult = str.IndexOf('e', 5, 4); //从前向后定位从第5位到第9位中'e'出现的位置; Console.WriteLine("IndexOf('e', 5, 4) = " + nResult); } }}结果:IndexOf('e') = 1 IndexOf('e', 1) = 1 IndexOf('e', 5, 4) = 6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
5、字符串的分割: String.Split(SplitCh):参数:SplitCh为分割的字符;功能:将字符串⼀SplitCh进⾏分割,它的返回值是⼀个字符串数组。
6、字符串的合并: (1)、String.Concat(str1, str2, …., strn):将n个字符串连接,中间没有连接符 (2)、String.Join(SplitCh, array):参数:SplitCh为合并后的分隔符,array为要合并的字符串数组;功能:将字符串书组合并成⼀个字符串,每个元素之间⽤SplitCh隔开 static void Main(string [] args) { int nResult = 0; string str = "hello everyOne!!"; string OnePareStr = str.Substring(5); string TwoPareStr = str.Substring(5, 6); Console.WriteLine("str.Substring(5) = " + OnePareStr); Console.WriteLine("str.Substring(5, 6) = " + TwoPareStr); } }}结果:strstr.Substring(5) = everyOne!!
str.Substring(5, 6) = every
5
6
7
8
9
10
1112
13
14
15
16
17
18namespace StringTest { class Program { static void Main(string [] args) { string str = "hello everyOne!!"; string [] destStr = str.Split('e'); Console.Write("str.Split('e') = "); foreach (string outstr in destStr) { Console.Write(outstr); Console.Write(" "); } } }}结果:str.Split('e') = h llo v ryOn !!
1
2
3
4
5
6
7
8
910
11
12
13
14
15
16
17
18namespace StringTest { class Program { static void Main(string[] args) { string str1 = "hello, "; string str2 = "I am very happy!!"; string[] array= {"hello", "I am", "very happy!!"}; string ConcatStr = string.Concat(str1, str2); String JoinStr = string.Join("|", array); Console.WriteLine("string.Concat(str1, str2) = " + ConcatStr); Console.WriteLine("string.Join('-', array) = " + JoinStr); } }}结果:string.Concat(str1, str2) = hello, I am very happy!!
string.Join('-', array) = hello|I am|very happy!!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
其实字符串连接也可以⽤ ‘+’ 来实现。
7、字符串的替换: String.Replace(SreStr, ChangeStr):参数:SreStr为要替换的原字符串,ChangeStr为⽤来替换的字符串。作⽤:⽤ChangeStr来替换字符串中的SreStr.
8、字符串的插⼊与填充: (1)、String.Insert(index, str):index是需要插⼊的位置,str是要插⼊的字符; (2)、String.PadRight(Len,ch):参数:Len为字符串的总长度,ch为⽤来填充的字符。作⽤:如果字符串上都不够Len,则在结尾⽤ch来填充 (3)、
String.PadLeft(Len, ch):参数:Len为字符串的总长度,ch为⽤来填充的字符。作⽤:如果字符串上都不够Len,则在开始处⽤ch来填充
9、字符串的删除: (1)、String.Trim():删除字符串中开始和结尾处的空格。 (2)、string.Trim(Param char[]):参数:char[]为想要去掉的字符数组。功能:去掉字符串开始处和结尾处char[]中的所有字符。namespace StringTest { class Program { static void Main(string [] args) { string str1 = "hello, "; string str2 = "I am very happy!!"; string DestStr = str1 + str2; Console.WriteLine("str1 + str2 = " + DestStr); } }}结果:str1 + str2 = hello, I am very happy!!
1
2
3
4
5
6
7
8
9
10
11
12
1314namespace StringTest { class Program { static void Main(string[] args) { string str = "I am very happy!!"; string DestStr = str.Replace("very", "not"); Console.WriteLine("str.Replace(\"very\", \"not \") = " + DestStr); } }}结果:str.Replace("very", "not") = I am not happy!!
1
2
3
4
5
6
7
8
9
10
11
12
13namespace StringTest { class Program { static void Main(string [] args) { string str = "I am happy!!"; string str1 = str.Insert(5, "very "); string str2 = str1.PadLeft(30, ' '); string str3 = str1.PadRight(30, ' '); Console.WriteLine("str.Insert(6,
\"very \") = " + str1); Console.WriteLine("str1.PadLeft(30, ' ') = " + str2); Console.WriteLine("str1.PadRight(30, ' ') = " + str3); } }}结果:str.Insert(6, "very ") = I am very happy!! str1.PadLeft(30, ' ') = I am very happy!! str1.PadRight(30, ' ') = I am very happy!!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论