天天看點

C# 字元串(String)

在 C# 中,您可以使用字元數組來表示字元串,但是,更常見的做法是使用 string 關鍵字來聲明一個字元串變量。string 關鍵字是 System.String 類的别名。

建立 String 對象

您可以使用以下方法之一來建立 string 對象:

  • 通過給 String 變量指定一個字元串
  • 通過使用 String 類構造函數
  • 通過使用字元串串聯運算符( + )
  • 通過檢索屬性或調用一個傳回字元串的方法
  • 通過格式化方法來轉換一個值或對象為它的字元串表示形式

下面的執行個體示範了這點:

執行個體

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);

            //通過使用 string 構造函數

            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);

            //用于轉化值的格式化方法

            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() ;

        }

    }

}

當上面的代碼被編譯和執行時,它會産生下列結果:

Full Name: RowanAtkinson
Greetings: Hello
Message: Hello From Tutorials Point
Message: Message sent at 17:58 on Wednesday, 10 October 2012
      

String 類的屬性

String 類有以下兩個屬性:

序号 屬性名稱 & 描述
1 Chars 在目前 String 對象中擷取 Char 對象的指定位置。
2 Length 在目前的 String 對象中擷取字元數。

String 類的方法

String 類有許多方法用于 string 對象的操作。下面的表格提供了一些最常用的方法:

方法名稱 & 描述

public static int Compare(

string strA,

string strB

)

比較兩個指定的 string 對象,并傳回一個表示它們在排列順序中相對位置的整數。該方法區分大小寫。

string strB,

bool ignoreCase

比較兩個指定的 string 對象,并傳回一個表示它們在排列順序中相對位置的整數。但是,如果布爾參數為真時,該方法不區分大小寫。
3

public static string Concat(

string str0,

string str1

連接配接兩個 string 對象。
4

string str1,

string str2

連接配接三個 string 對象。
5

string str2,

string str3

連接配接四個 string 對象。
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 對象的結尾是否比對指定的字元串。
10 public bool Equals( 判斷目前的 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 字元在目前字元串中第一次出現的索引,索引從 0 開始。
14 傳回指定字元串在該執行個體中第一次出現的索引,索引從 0 開始。
15

char value,

int startIndex

傳回指定 Unicode 字元從該字元串中指定字元位置開始搜尋第一次出現的索引,索引從 0 開始。
16 string value, 傳回指定字元串從該執行個體中指定字元位置開始搜尋第一次出現的索引,索引從 0 開始。
17

public int IndexOfAny(

char[] anyOf

傳回某一個指定的 Unicode 字元數組中任意字元在該執行個體中第一次出現的索引,索引從 0 開始。
18 char[] anyOf, 傳回某一個指定的 Unicode 字元數組中任意字元從該執行個體中指定字元位置開始搜尋第一次出現的索引,索引從 0 開始。
19

public string Insert(

int startIndex,

傳回一個新的字元串,其中,指定的字元串被插入在目前 string 對象的指定索引位置。
20 public static bool IsNullOrEmpty( 訓示指定的字元串是否為 null 或者是否為一個空的字元串。
21

public static string Join(

string separator,

string[] value

連接配接一個字元串數組中的所有元素,使用指定的分隔符分隔每個元素。
22 string[] value, 連接配接一個字元串數組中的指定位置開始的指定元素,使用指定的分隔符分隔每個元素。
23 public int LastIndexOf( 傳回指定 Unicode 字元在目前 string 對象中最後一次出現的索引位置,索引從 0 開始。
24 傳回指定字元串在目前 string 對象中最後一次出現的索引位置,索引從 0 開始。
25 public string Remove( 移除目前執行個體中的所有字元,從指定位置開始,一直到最後一個位置為止,并傳回字元串。
26 從目前字元串的指定位置開始移除指定數量的字元,并傳回字元串。
27

public string Replace(

char oldChar,

char newChar

把目前 string 對象中,所有指定的 Unicode 字元替換為另一個指定的 Unicode 字元,并傳回新的字元串。
28

string oldValue,

string newValue

把目前 string 對象中,所有指定的字元串替換為另一個指定的字元串,并傳回新的字元串。
29

public string[] Split(

params char[] separator

傳回一個字元串數組,包含目前的 string 對象中的子字元串,子字元串是使用指定的 Unicode 字元數組中的元素進行分隔的。
30 char[] separator, 傳回一個字元串數組,包含目前的 string 對象中的子字元串,子字元串是使用指定的 Unicode 字元數組中的元素進行分隔的。int 參數指定要傳回的子字元串的最大數目。
31 public bool StartsWith( 判斷字元串執行個體的開頭是否比對指定的字元串。
32 public char[] ToCharArray() 傳回一個帶有目前 string 對象中所有字元的 Unicode 字元數組。
33

public char[] ToCharArray(

int length

傳回一個帶有目前 string 對象中所有字元的 Unicode 字元數組,從指定的索引開始,直到指定的長度為止。
34 public string ToLower() 把字元串轉換為小寫并傳回。
35 public string ToUpper() 把字元串轉換為大寫并傳回。
36 public string Trim() 移除目前 String 對象中的所有前導空白字元和後置空白字元。

上面的方法清單并不詳盡,請通路 MSDN 庫,檢視完整的方法清單和 String 類構造函數。

下面的執行個體示範了上面提到的一些方法:

比較字元串

   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 str = "This is test";

         if (str.Contains("test"))

            Console.WriteLine("The sequence 'test' was found.");

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() ;

                }

        }

Last night I dreamt of San Pedro
San Pedro
      
連接配接字元串:

         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