在 C# 中,您可以使用字符數(shù)組來(lái)表示字符串,但是,更常見(jiàn)的做法是使用 string 關(guān)鍵字來(lái)聲明一個(gè)字符串變量。string 關(guān)鍵字是 System.String 類(lèi)的別名。
您可以使用以下方法之一來(lái)創(chuàng)建 string 對(duì)象:
下面的實(shí)例演示了這點(diǎn):
using System;
namespace StringApplication{
class Program{
static void Main(string[] args){
//字符串,字符串連接
string fname, lname;
fname = "Rowan";
lname = "Atkinson";
string fullname = fname + lname;
Console.WriteLine("Full Name: {0}", fullname);
//通過(guò)使用 string 構(gòu)造函數(shù)
char[] letters = { 'H', 'e', 'l', 'l','o' };
string greetings = new string(letters);
Console.WriteLine("Greetings: {0}", greetings);
//方法返回字符串
string[] sarray = { "Hello", "From", "Tutorials", "Point" };
string message = String.Join(" ", sarray);
Console.WriteLine("Message: {0}", message);
//用于轉(zhuǎn)化值的格式化方法
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);
Console.ReadKey() ;
}
}
}
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
Full Name: RowanAtkinson
Greetings: Hello
Message: Hello From Tutorials Point
Message: Message sent at 17:58 on Wednesday, 10 October 2012
String 類(lèi)有以下兩個(gè)屬性:
序號(hào) | 屬性名稱 & 描述 |
---|---|
1 | Chars
在當(dāng)前 String 對(duì)象中獲取 Char 對(duì)象的指定位置。 |
2 | Length
在當(dāng)前的 String 對(duì)象中獲取字符數(shù)。 |
String 類(lèi)有許多方法用于 string 對(duì)象的操作。下面的表格提供了一些最常用的方法:
序號(hào) | 方法名稱 & 描述 |
---|---|
1 | public static int Compare(
string strA,
string strB
)
比較兩個(gè)指定的 string 對(duì)象,并返回一個(gè)表示它們?cè)谂帕许樞蛑邢鄬?duì)位置的整數(shù)。該方法區(qū)分大小寫(xiě)。 |
2 | public static int Compare(
string strA,
string strB,
bool ignoreCase
)
比較兩個(gè)指定的 string 對(duì)象,并返回一個(gè)表示它們?cè)谂帕许樞蛑邢鄬?duì)位置的整數(shù)。但是,如果布爾參數(shù)為真時(shí),該方法不區(qū)分大小寫(xiě)。 |
3 | public static string Concat(
string str0,
string str1
)
連接兩個(gè) string 對(duì)象。 |
4 | public static string Concat(
string str0,
string str1,
string str2
)
連接三個(gè) string 對(duì)象。 |
5 | public static string Concat(
string str0,
string str1,
string str2,
string str3
)
連接四個(gè) string 對(duì)象。 |
6 | public bool Contains(
string value
)
返回一個(gè)表示指定 string 對(duì)象是否出現(xiàn)在字符串中的值。 |
7 | public static string Copy(
string str
)
創(chuàng)建一個(gè)與指定字符串具有相同值的新的 String 對(duì)象。 |
8 | public void CopyTo(
int sourceIndex,
char[] destination,
int destinationIndex,
int count
)
從 string 對(duì)象的指定位置開(kāi)始復(fù)制指定數(shù)量的字符到 Unicode 字符數(shù)組中的指定位置。 |
9 | public bool EndsWith(
string value
)
判斷 string 對(duì)象的結(jié)尾是否匹配指定的字符串。 |
10 | public bool Equals(
string value
)
判斷當(dāng)前的 string 對(duì)象是否與指定的 string 對(duì)象具有相同的值。 |
11 | public static bool Equals(
string a,
string b
)
判斷兩個(gè)指定的 string 對(duì)象是否具有相同的值。 |
12 | public static string Format(
string format,
Object arg0
)
把指定字符串中一個(gè)或多個(gè)格式項(xiàng)替換為指定對(duì)象的字符串表示形式。 |
13 | public int IndexOf(
char value
)
返回指定 Unicode 字符在當(dāng)前字符串中第一次出現(xiàn)的索引,索引從 0 開(kāi)始。 |
14 | public int IndexOf(
string value
)
返回指定字符串在該實(shí)例中第一次出現(xiàn)的索引,索引從 0 開(kāi)始。 |
15 | public int IndexOf(
char value,
int startIndex
)
返回指定 Unicode 字符從該字符串中指定字符位置開(kāi)始搜索第一次出現(xiàn)的索引,索引從 0 開(kāi)始。 |
16 | public int IndexOf(
string value,
int startIndex
)
返回指定字符串從該實(shí)例中指定字符位置開(kāi)始搜索第一次出現(xiàn)的索引,索引從 0 開(kāi)始。 |
17 | public int IndexOfAny(
char[] anyOf
)
返回某一個(gè)指定的 Unicode 字符數(shù)組中任意字符在該實(shí)例中第一次出現(xiàn)的索引,索引從 0 開(kāi)始。 |
18 | public int IndexOfAny(
char[] anyOf,
int startIndex
)
返回某一個(gè)指定的 Unicode 字符數(shù)組中任意字符從該實(shí)例中指定字符位置開(kāi)始搜索第一次出現(xiàn)的索引,索引從 0 開(kāi)始。 |
19 | public string Insert(
int startIndex,
string value
)
返回一個(gè)新的字符串,其中,指定的字符串被插入在當(dāng)前 string 對(duì)象的指定索引位置。 |
20 | public static bool IsNullOrEmpty(
string value
)
指示指定的字符串是否為 null 或者是否為一個(gè)空的字符串。 |
21 | public static string Join(
string separator,
params string[] value
)
連接一個(gè)字符串?dāng)?shù)組中的所有元素,使用指定的分隔符分隔每個(gè)元素。 |
22 | public static string Join(
string separator,
string[] value,
int startIndex,
int count
)
鏈接一個(gè)字符串?dāng)?shù)組中的指定元素,使用指定的分隔符分隔每個(gè)元素。 |
23 | public int LastIndexOf(
char value
)
返回指定 Unicode 字符在當(dāng)前 string 對(duì)象中最后一次出現(xiàn)的索引位置,索引從 0 開(kāi)始。 |
24 | public int LastIndexOf(
string value
)
返回指定字符串在當(dāng)前 string 對(duì)象中最后一次出現(xiàn)的索引位置,索引從 0 開(kāi)始。 |
25 | public string Remove(
int startIndex
)
移除當(dāng)前實(shí)例中的所有字符,從指定位置開(kāi)始,一直到最后一個(gè)位置為止,并返回字符串。 |
26 | public string Remove(
int startIndex,
int count
)
從當(dāng)前字符串的指定位置開(kāi)始移除指定數(shù)量的字符,并返回字符串。 |
27 | public string Replace(
char oldChar,
char newChar
)
把當(dāng)前 string 對(duì)象中,所有指定的 Unicode 字符替換為另一個(gè)指定的 Unicode 字符,并返回新的字符串。 |
28 | public string Replace(
string oldValue,
string newValue
)
把當(dāng)前 string 對(duì)象中,所有指定的字符串替換為另一個(gè)指定的字符串,并返回新的字符串。 |
29 | public string[] Split(
params char[] separator
)
返回一個(gè)字符串?dāng)?shù)組,包含當(dāng)前的 string 對(duì)象中的子字符串,子字符串是使用指定的 Unicode 字符數(shù)組中的元素進(jìn)行分隔的。 |
30 | public string[] Split(
char[] separator,
int count
)
返回一個(gè)字符串?dāng)?shù)組,包含當(dāng)前的 string 對(duì)象中的子字符串,子字符串是使用指定的 Unicode 字符數(shù)組中的元素進(jìn)行分隔的。int 參數(shù)指定要返回的子字符串的最大數(shù)目。 |
31 | public bool StartsWith(
string value
)
判斷字符串實(shí)例的開(kāi)頭是否匹配指定的字符串。 |
32 | public char[] ToCharArray()
返回一個(gè)帶有當(dāng)前 string 對(duì)象中所有字符的 Unicode 字符數(shù)組。 |
33 | public char[] ToCharArray(
int startIndex,
int length
)
返回一個(gè)帶有當(dāng)前 string 對(duì)象中所有字符的 Unicode 字符數(shù)組,從指定的索引開(kāi)始,直到指定的長(zhǎng)度為止。 |
34 | public string ToLower()
把字符串轉(zhuǎn)換為小寫(xiě)并返回。 |
35 | public string ToUpper()
把字符串轉(zhuǎn)換為大寫(xiě)并返回。 |
36 | public string Trim()
移除當(dāng)前 String 對(duì)象中的所有前導(dǎo)空白字符和后置空白字符。 |
上面的方法列表并不詳盡,請(qǐng)?jiān)L問(wèn) MSDN 庫(kù),查看完整的方法列表和 String 類(lèi)構(gòu)造函數(shù)。
下面的實(shí)例演示了上面提到的一些方法:
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() ;
}
}
}
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
This is test and This is text are not equal.
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() ;
}
}
}
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
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);
Console.ReadKey() ;
}
}
}
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
Last night I dreamt of San Pedro
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);
Console.ReadKey() ;
}
}
}
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
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
更多建議: