Strings
在C#中,您可以使用字符串作为字符数组。但是,更常见的做法是使用string关键字来声明字符串变量。 string关键字是System.String类的别名。
创建一个String对象
您可以使用以下方法之一创建字符串对象 -
通过将字符串文字分配给String变量
通过使用String类构造函数
通过使用字符串连接运算符(+)
通过检索属性或调用返回字符串的方法
通过调用格式化方法将值或对象转换为其字符串表示形式
以下示例演示了这一点 -
using System;
namespace StringApplication {
class Program {
static void Main(string[] args) {
//from string literal and string concatenation
string fname, lname;
fname = "Rowan";
lname = "Atkinson";
char []letters= { 'H', 'e', 'l', 'l','o' };
string [] sarray={ "Hello", "From", "Tutorials", "Point" };
string fullname = fname + lname;
Console.WriteLine("Full Name: {0}", fullname);
//by using string constructor { 'H', 'e', 'l', 'l','o' };
string greetings = new string(letters);
Console.WriteLine("Greetings: {0}", greetings);
//methods returning string { "Hello", "From", "Tutorials", "Point" };
string message = String.Join(" ", sarray);
Console.WriteLine("Message: {0}", message);
//formatting method to convert a value
DateTime waiting = new DateTime(2012, 10, 10, 17, 58, 1);
string chat = String.Format("Message sent at {0:t} on {0:D}", waiting);
Console.WriteLine("Message: {0}", chat);
}
}
}
编译并执行上述代码时,会产生以下结果 -
Full Name: RowanAtkinson
Greetings: Hello
Message: Hello From IOWIKI
Message: Message sent at 5:58 PM on Wednesday, October 10, 2012
字符串类的属性
String类具有以下两个属性 -
Sr.No. | 财产和描述 |
---|---|
1 | Chars 获取当前String对象中指定位置的Char对象。 |
2 | Length 获取当前String对象中的字符数。 |
String类的方法
String类有许多方法可以帮助您处理字符串对象。 下表提供了一些最常用的方法 -
Sr.No. | 方法和描述 |
---|---|
1 | public static int Compare(string strA, string strB) 比较两个指定的字符串对象,并返回一个整数,指示它们在排序顺序中的相对位置。 |
2 | public static int Compare(string strA, string strB, bool ignoreCase ) 比较两个指定的字符串对象,并返回一个整数,指示它们在排序顺序中的相对位置。 但是,如果Boolean参数为true,则忽略大小写。 |
3 | public static string Concat(string str0, string str1) 连接两个字符串对象。 |
4 | public static string Concat(string str0, string str1, string str2) 连接三个字符串对象。 |
5 | public static string Concat(string str0, string str1, string str2, string str3) 连接四个字符串对象。 |
6 | public bool Contains(string value) 返回一个值,该值指示指定的String对象是否出现在此字符串中。 |
7 | public static string Copy(string str) 创建一个与指定字符串具有相同值的新String对象。 |
8 | public void CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count) 将指定数量的字符从String对象的指定位置复制到Unicode字符数组中的指定位置。 |
9 | public bool EndsWith(string value) 确定字符串对象的结尾是否与指定的字符串匹配。 |
10 | public bool Equals(string value) 确定当前String对象和指定的String对象是否具有相同的值。 |
11 | public static bool Equals(string a, string b) 确定两个指定的String对象是否具有相同的值。 |
12 | public static string Format(string format, Object arg0) 使用指定对象的字符串表示形式替换指定字符串中的一个或多个格式项。 |
13 | public int IndexOf(char value) 返回当前字符串中第一次出现的指定Unicode字符的从零开始的索引。 |
14 | public int IndexOf(string value) 返回此实例中第一次出现的指定字符串的从零开始的索引。 |
15 | public int IndexOf(char value, int startIndex) 返回此字符串中第一次出现的指定Unicode字符的从零开始的索引,从指定的字符位置开始搜索。 |
16 | public int IndexOf(string value, int startIndex) 返回此实例中第一次出现的指定字符串的从零开始的索引,从指定的字符位置开始搜索。 |
17 | public int IndexOfAny(char[] anyOf) 返回指定Unicode字符数组中任何字符的此实例中第一次出现的从零开始的索引。 |
18 | public int IndexOfAny(char[] anyOf, int startIndex) 返回指定Unicode字符数组中任何字符的此实例中第一次出现的从零开始的索引,从指定字符位置开始搜索。 |
19 | public string Insert(int startIndex, string value) 返回一个新字符串,其中在当前字符串对象的指定索引位置插入指定的字符串。 |
20 | public static bool IsNullOrEmpty(string value) 指示指定的字符串是null还是空字符串。 |
21 | public static string Join(string separator, params string[] value) 使用每个元素之间的指定分隔符连接字符串数组的所有元素。 |
22 | public static string Join(string separator, string[] value, int startIndex, int count) 使用每个元素之间的指定分隔符连接字符串数组的指定元素。 |
23 | public int LastIndexOf(char value) 返回当前字符串对象中最后一次出现的指定Unicode字符的从零开始的索引位置。 |
24 | public int LastIndexOf(string value) 返回当前字符串对象中最后一次出现的指定字符串的从零开始的索引位置。 |
25 | public string Remove(int startIndex) 从当前实例中删除所有字符,从指定位置开始并继续到最后一个位置,然后返回字符串。 |
26 | public string Remove(int startIndex, int count) 从指定位置开始删除当前字符串中指定数量的字符并返回该字符串。 |
27 | public string Replace(char oldChar, char newChar) 使用指定的Unicode字符替换当前字符串对象中所有出现的指定Unicode字符,并返回新字符串。 |
28 | public string Replace(string oldValue, string newValue) 使用指定的字符串替换当前字符串对象中所有出现的指定字符串,并返回新字符串。 |
29 | public string[] Split(params char[] separator) 返回一个字符串数组,该数组包含当前字符串对象中的子字符串,由指定的Unicode字符数组的元素分隔。 |
30 | public string[] Split(char[] separator, int count) 返回一个字符串数组,该数组包含当前字符串对象中的子字符串,由指定的Unicode字符数组的元素分隔。 int参数指定要返回的最大子串数。 |
31 | public bool StartsWith(string value) 确定此字符串实例的开头是否与指定的字符串匹配。 |
32 | public char[] ToCharArray() 返回包含当前字符串对象中所有字符的Unicode字符数组。 |
33 | public char[] ToCharArray(int startIndex, int length) 返回一个Unicode字符数组,其中包含当前字符串对象中的所有字符,从指定的索引开始直到指定的长度。 |
34 | public string ToLower() 返回转换为小写的此字符串的副本。 |
35 | public string ToUpper() 返回转换为大写的此字符串的副本。 |
36 | public string Trim() 从当前String对象中删除所有前导和尾随空格字符。 |
您可以访问MSDN库以获取完整的方法列表和String类构造函数。
例子 (Examples)
以下示例演示了上面提到的一些方法 -
比较字符串
using System;
namespace StringApplication {
class StringProg {
static void Main(string[] args) {
string str1 = "This is test";
string str2 = "This is text";
if (String.Compare(str1, str2) == 0) {
Console.WriteLine(str1 + " and " + str2 + " are equal.");
} else {
Console.WriteLine(str1 + " and " + str2 + " are not equal.");
}
Console.ReadKey() ;
}
}
}
编译并执行上述代码时,会产生以下结果 -
This is test and This is text are not equal.
String包含String
using System;
namespace StringApplication {
class StringProg {
static void Main(string[] args) {
string str = "This is test";
if (str.Contains("test")) {
Console.WriteLine("The sequence 'test' was found.");
}
Console.ReadKey() ;
}
}
}
编译并执行上述代码时,会产生以下结果 -
The sequence 'test' was found.
获得子串
using System;
namespace StringApplication {
class StringProg {
static void Main(string[] args) {
string str = "Last night I dreamt of San Pedro";
Console.WriteLine(str);
string substr = str.Substring(23);
Console.WriteLine(substr);
}
}
}
编译并执行上述代码时,会产生以下结果 -
San Pedro
加入字符串
using System;
namespace StringApplication {
class StringProg {
static void Main(string[] args) {
string[] starray = new string[]{"Down the way nights are dark",
"And the sun shines daily on the mountain top",
"I took a trip on a sailing ship",
"And when I reached Jamaica",
"I made a stop"};
string str = String.Join("\n", starray);
Console.WriteLine(str);
}
}
}
编译并执行上述代码时,会产生以下结果 -
Down the way nights are dark
And the sun shines daily on the mountain top
I took a trip on a sailing ship
And when I reached Jamaica
I made a stop