C# 字符串(String)使用教程

2022-10-13 11:55 更新

在 C# 中,您可以使用字符數(shù)組來(lái)表示字符串,但是,更常見(jiàn)的做法是使用 string 關(guān)鍵字來(lái)聲明一個(gè)字符串變量。string 關(guān)鍵字是 System.String 類(lèi)的別名。


創(chuàng)建 String 對(duì)象

您可以使用以下方法之一來(lái)創(chuàng)建 string 對(duì)象:

  • 通過(guò)給 String 變量指定一個(gè)字符串
  • 通過(guò)使用 String 類(lèi)構(gòu)造函數(shù)
  • 通過(guò)使用字符串串聯(lián)運(yùn)算符( + )
  • 通過(guò)檢索屬性或調(diào)用一個(gè)返回字符串的方法
  • 通過(guò)格式化方法來(lái)轉(zhuǎn)換一個(gè)值或?qū)ο鬄樗淖址硎拘问?/li>

下面的實(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)的屬性

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 類(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í)例

下面的實(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


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)