位置:首頁 > 高級語言 > C#教學 > C#字符串

C#字符串

在C#中,可以使用字符串作為字符數組,但更常見的做法是使用string關鍵字來聲明一個字符串變量。該string關鍵字是System.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";

            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", "Yiibai", "Yiibai" };
            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);
            Console.ReadKey() ;
        }
    }
}

讓我們編譯和運行上麵的程序,這將產生以下結果:

Full Name: Rowan Atkinson
Greetings: Hello
Message: Hello From Yiibai Yiibai
Message: Message sent at 5:58 PM on Wednesday, October 10, 2012

String類的屬性

String類有以下兩個屬性:

S.N 屬性名稱 & 描述
1 Chars
獲取在當前字符串對象中的指定位置的字符對象
2 Length
獲取字符在當前字符串對象的數目

String類的方法

String類有許多方法,以幫助使用String對象。下表提供了一些最常用的方法:

S.N 方法名稱 & 描述
1 public static int Compare( string strA, string strB ) 
比較兩個指定的字符串對象,並返回一個整數,指示其在排序順序相對位置
2 public static int Compare( string strA, string strB, bool ignoreCase ) 
比較兩個指定的字符串對象,並返回一個整數,指示其在排序順序相對位置。但是,它忽略情況下,如果布爾參數為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 ) 
返回一個值,指示指定的字符串對象是否發生此字符串中
7 public static string Copy( string str ) 
創建具有相同的值作為指定字符串的新String對象
8 public void CopyTo( int sourceIndex, char[] destination, int destinationIndex, int count ) 
複製從字符串對象到指定位置Unicode字符數組的指定位置指定的字符數
9 public bool EndsWith( string value ) 
確定字符串對象的末尾是否與指定的字符串匹配
10 public bool Equals( string value ) 
確定當前字符串對象,並指定字符串對象是否具有相同的值
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 ) 
指示指定的字符串是否為空或空字符串
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字符數組的元素分隔。整型參數指定的子串返回最大數量
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類的構造函數的完整列表。

實例:

下麵的例子說明了一些上麵提到的方法:

比較字符串:

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包含字符串:

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);
      }
      Console.ReadKey() ;
   }
}

讓我們編譯和運行上麵的程序,這將產生以下結果:

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("
", starray);
         Console.WriteLine(str);
      }
      Console.ReadKey() ;
   }
}

讓我們編譯和運行上麵的程序,這將產生以下結果:

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