在 C# 中,可以使用字符串作為字符數(shù)組,但更常見的做法是使用 string 關(guān)鍵字來聲明一個(gè)字符串變量。該 string 關(guān)鍵字是 System.String 類的別名。
可以使用下列方法之一字符串對象:
下面的例子說明了這一點(diǎn):
using System;
namespace StringApplication
{
class Program
{
static void Main(string[] args)
{
//from string literal and string concatenation
string fname, lname;
fname = "Rowan";
lname = "Atkinson";
string fullname = fname + lname;
Console.WriteLine("Full Name: {0}", fullname);
//by using string constructor
char[] letters = { 'H', 'e', 'l', 'l','o' };
string greetings = new string(letters);
Console.WriteLine("Greetings: {0}", greetings);
//methods returning string
string[] sarray = { "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);
}
}
}
編譯執(zhí)行上述代碼,得到如下結(jié)果:
Full Name: Rowan Atkinson
Greetings: Hello
Message: Hello From Tutorials Point
Message: Message sent at 5:58 PM on Wednesday, October 10, 2012
String 類有以下兩個(gè)屬性:
序號 | 屬性名稱和描述 |
---|---|
1 | Chars 獲取在當(dāng)前字符串對象中的指定位置的字符對象 |
2 | Length 獲取字符在當(dāng)前字符串對象的數(shù)目 |
String 類有許多方法,以幫助使用 String 對象。下表提供了一些最常用的方法:
序號 | 屬性名稱和描述 |
---|---|
1 | public static int Compare(string strA,string strB) 比較兩個(gè)指定的字符串對象,并返回一個(gè)整數(shù),指示其在排序順序相對位置 |
2 | public static int Compare(string strA,string strB,bool ignoreCase) 比較兩個(gè)指定的字符串對象,并返回一個(gè)整數(shù),指示其在排序順序相對位置。但是,它忽略情況下,如果布爾參數(shù)為true |
3 | public static string Concat(string str0,string str1) 連接兩個(gè)字符串對象 |
4 | public static string Concat(string str0,string str1,string str2) 拼接三個(gè)字符串對象 |
5 | public static string Concat(string str0,string str1,string str2,string str3) 符連接四個(gè)字符串對象 |
6 | public bool Contains(string value) 返回一個(gè)值,指示指定的字符串對象是否發(fā)生此字符串中 |
7 | public static string Copy(string str) 創(chuàng)建具有相同的值作為指定字符串的新String對象 |
8 | public void CopyTo(int sourceIndex,char[] destination,int destinationIndex,int count) 復(fù)制從字符串對象到指定位置Unicode字符數(shù)組的指定位置指定的字符數(shù) |
9 | public bool EndsWith(string value) 確定字符串對象的末尾是否與指定的字符串匹配 |
10 | public bool Equals(string value) 確定當(dāng)前字符串對象,并指定字符串對象是否具有相同的值 |
11 | public static bool Equals(string a,string b) 確定兩個(gè)指定的String對象是否具有相同的值 |
12 | public static string Format(string format,Object arg0) 替換指定的字符串指定對象的字符串表示在一個(gè)或多個(gè)格式項(xiàng) |
13 | public int IndexOf(char value) 返回當(dāng)前字符串指定Unicode字符中第一次出現(xiàn)從零開始的索引 |
14 | public int IndexOf(string value) 返回在這種情況下指定字符串中第一次出現(xiàn)從零開始的索引 |
15 | public int IndexOf(char value,int startIndex) 返回此字符串指定Unicode字符中第一次出現(xiàn)從零開始的索引,搜索開始在指定的字符位置 |
16 | public int IndexOf(string value,int startIndex) 返回在這種情況下指定字符串中第一次出現(xiàn)的從零開始的索引,搜索開始在指定的字符位置 |
17 | public int IndexOfAny(char[] anyOf) 返回Unicode字符指定數(shù)組中第一次出現(xiàn)的任何字符的這個(gè)實(shí)例從零開始的索引 |
18 | public int IndexOfAny(char[] anyOf,int startIndex) 返回Unicode字符指定數(shù)組,開始搜索從指定字符位置中第一次出現(xiàn)的任何字符的這個(gè)實(shí)例從零開始的索引 |
19 | public string Insert(int startIndex,string value) 返回在指定的字符串被插入在當(dāng)前字符串對象指定索引位置一個(gè)新的字符串 |
20 | public static bool IsNullOrEmpty(string value) 指示指定的字符串是否為空或空字符串 |
21 | public static string Join(string separator,params string[] value) 連接字符串?dāng)?shù)組中的所有元素,使用每個(gè)元件之間指定的分隔 |
22 | public static string Join(string separator,string[] value,int startIndex,int count) 連接字符串?dāng)?shù)組的指定元素,利用每一個(gè)元素之間指定分隔符 |
23 | public int LastIndexOf(char value) 返回當(dāng)前字符串對象中指定的Unicode字符的最后出現(xiàn)從零開始的索引位置 |
24 | public int LastIndexOf(string value) 返回當(dāng)前字符串對象中的指定字符串最后一次出現(xiàn)的從零開始的索引位置 |
25 | public string Remove(int startIndex) 刪除在當(dāng)前實(shí)例中的所有字符,開始在指定的位置,并繼續(xù)通過最后位置,并返回字符串 |
26 | public string Remove(int startIndex,int count) 刪除在當(dāng)前字符串的字符開始的指定位置的指定數(shù)量,并返回字符串 |
27 | public string Replace(char oldChar,char newChar) 替換與指定的Unicode字符當(dāng)前字符串對象指定的Unicode字符的所有匹配,并返回新的字符串 |
28 | public string Replace(string oldValue,string newValue) 替換用指定的字符串當(dāng)前字符串對象指定的字符串的所有匹配,并返回新的字符串 |
29 | public string[] Split(params char[] separator) 返回一個(gè)字符串?dāng)?shù)組,其中包含的子字符串在當(dāng)前字符串對象,由指定的Unicode字符數(shù)組的元素分隔 |
30 | public string[] Split(char[] separator,int count) 返回一個(gè)字符串?dāng)?shù)組,其中包含的子字符串在當(dāng)前字符串對象,由指定的Unicode字符數(shù)組的元素分隔。整型參數(shù)指定的子串返回最大數(shù)量 |
31 | public bool StartsWith(string value) 確定此字符串實(shí)例的開頭是否與指定的字符串匹配 |
32 | public char[] ToCharArray() 返回一個(gè)Unicode字符數(shù)組,在當(dāng)前字符串對象中的所有字符 |
33 | public char[] ToCharArray(int startIndex,int length) 返回一個(gè)Unicode字符數(shù)組,在當(dāng)前字符串對象中的所有字符,從指定的索引開始,并到指定的長度 |
34 | public string ToLower() 返回此字符串的一個(gè)副本轉(zhuǎn)換為小寫 |
35 | public string ToUpper() 返回此字符串的一個(gè)副本轉(zhuǎn)換為大寫 |
36 | public string Trim() 從當(dāng)前String對象去除所有開頭和結(jié)尾的空白字符 |
方法上述名單并不是詳盡的信息,請?jiān)L問MSDN庫的方法和String類的構(gòu)造函數(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() ;
}
}
}
編譯執(zhí)行上述代碼,得到如下結(jié)果:
This is test and This is text are not equal.
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() ;
}
}
}
編譯執(zhí)行上述代碼,得到如下結(jié)果:
The sequence 'test' was found.
獲取一個(gè)子字符串:
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);
}
}
}
編譯執(zhí)行上述代碼,得到如下結(jié)果:
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);
}
}
}
編譯執(zhí)行上述代碼,得到如下結(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
更多建議: