1. 程式人生 > 其它 >string字串型別的屬性及各種方法

string字串型別的屬性及各種方法

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() ; } } }
    View Code
    程式碼執行顯示:
  • 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 物件的操作。下面的表格提供了一些最常用的方法:

    序號方法名稱 & 描述
    1 public static int Compare( string strA, string strB )
    比較兩個指定的 string 物件,並返回一個表示它們在排列順序中相對位置的整數。該方法區分大小寫。
    2 public static int Compare( string strA, string strB, bool ignoreCase )
    比較兩個指定的 string 物件,並返回一個表示它們在排列順序中相對位置的整數。但是,如果布林引數為真時,該方法不區分大小寫。
    3 public static string Concat( string str0, string str1 )
    連線兩個 string 物件。
    4 public static string Concat( string str0, string str1, string str2 )
    連線三個 string 物件。
    5 public static string Concat( string str0, string str1, 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 value )
    判斷 string 物件的結尾是否匹配指定的字串。
    10 public bool Equals( string value )
    判斷當前的 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 public int IndexOf( string value )
    返回指定字串在該例項中第一次出現的索引,索引從 0 開始。
    15 public int IndexOf( char value, int startIndex )
    返回指定 Unicode 字元從該字串中指定字元位置開始搜尋第一次出現的索引,索引從 0 開始。
    16 public int IndexOf( string value, int startIndex )
    返回指定字串從該例項中指定字元位置開始搜尋第一次出現的索引,索引從 0 開始。
    17 public int IndexOfAny( char[] anyOf )
    返回某一個指定的 Unicode 字元陣列中任意字元在該例項中第一次出現的索引,索引從 0 開始。
    18 public int IndexOfAny( char[] anyOf, int startIndex )
    返回某一個指定的 Unicode 字元陣列中任意字元從該例項中指定字元位置開始搜尋第一次出現的索引,索引從 0 開始。
    19 public string Insert( int startIndex, string value )
    返回一個新的字串,其中,指定的字串被插入在當前 string 物件的指定索引位置。
    20 public static bool IsNullOrEmpty( string value )
    指示指定的字串是否為 null 或者是否為一個空的字串。
    21 public static string Join( string separator, string[] value )
    連線一個字串陣列中的所有元素,使用指定的分隔符分隔每個元素。
    22 public static string Join( string separator, string[] value, int startIndex, int count )
    連線接一個字串陣列中的指定位置開始的指定元素,使用指定的分隔符分隔每個元素。
    23 public int LastIndexOf( char value )
    返回指定 Unicode 字元在當前 string 物件中最後一次出現的索引位置,索引從 0 開始。
    24 public int LastIndexOf( string value )
    返回指定字串在當前 string 物件中最後一次出現的索引位置,索引從 0 開始。
    25 public string Remove( int startIndex )
    移除當前例項中的所有字元,從指定位置開始,一直到最後一個位置為止,並返回字串。
    26 public string Remove( int startIndex, int count )
    從當前字串的指定位置開始移除指定數量的字元,並返回字串。
    27 public string Replace( char oldChar, char newChar )
    把當前 string 物件中,所有指定的 Unicode 字元替換為另一個指定的 Unicode 字元,並返回新的字串。
    28 public string Replace( string oldValue, string newValue )
    把當前 string 物件中,所有指定的字串替換為另一個指定的字串,並返回新的字串。
    29 public string[] Split( params char[] separator )
    返回一個字串陣列,包含當前的 string 物件中的子字串,子字串是使用指定的 Unicode 字元陣列中的元素進行分隔的。
    30 public string[] Split( char[] separator, int count )
    返回一個字串陣列,包含當前的 string 物件中的子字串,子字串是使用指定的 Unicode 字元陣列中的元素進行分隔的。int 引數指定要返回的子字串的最大數目。
    31 public bool StartsWith( string value )
    判斷字串例項的開頭是否匹配指定的字串。
    32 public char[] ToCharArray()
    返回一個帶有當前 string 物件中所有字元的 Unicode 字元陣列。
    33 public char[] ToCharArray( int startIndex, int length )
    返回一個帶有當前 string 物件中所有字元的 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() ;
          }
       }
    }
    View Code

    字串包含字串:

  • 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() ;
          }
       }
    }
    View Code

    獲取子字串:

    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() ;
                    }
            }
    }
    View Code

    連線字串:

  • 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() ;
          }
       }
    }
    View Code

    C# string.Format格式化日期

    DateTime dt = new DateTime(2017,4,1,13,16,32,108);
    string.Format("{0:y yy yyy yyyy}",dt); //17 17 2017 2017
    string.Format("{0:M MM MMM MMMM}", dt);//4  04 四月 四月
    string.Format("{0:d dd ddd dddd}", dt);//1  01 週六 星期六
    string.Format("{0:t tt}", dt);//下 下午
    string.Format("{0:H HH}", dt);//13 13
    string.Format("{0:h hh}", dt);//1  01
    string.Format("{0:m mm}", dt);//16 16
    string.Format("{0:s ss}", dt);//32 32
    string.Format("{0:F FF FFF FFFF FFFFF FFFFFF FFFFFFF}", dt);//1 1  108 108  108   108    108
    string.Format("{0:f ff fff ffff fffff ffffff fffffff}", dt);//1 10 108 1080 10800 108000 1080000
    string.Format("{0:z zz zzz}", dt);//+8 +08 +08:00
    
    string.Format("{0:yyyy/MM/dd HH:mm:ss.fff}",dt);  //2017/04/01 13:16:32.108
    string.Format("{0:yyyy/MM/dd dddd}", dt);      //2017/04/01 星期六
    string.Format("{0:yyyy/MM/dd dddd tt hh:mm}", dt); //2017/04/01 星期六 下午 01:16
    string.Format("{0:yyyyMMdd}", dt);         //20170401
    string.Format("{0:yyyy-MM-dd HH:mm:ss.fff}", dt); //2017-04-01 13:16:32.108

    除去string.Format()可以對日期進行格式化之外,*.ToString()也可以實現相同的效果:

    DateTime dt = new DateTime(2017,4,1,13,16,32,108);
    dt.ToString("y yy yyy yyyy");//17 17 2017 2017
    dt.ToString("M MM MMM MMMM");//4  04 四月 四月
    dt.ToString("d dd ddd dddd");//1  01 週六 星期六
    dt.ToString("t tt");//下 下午
    dt.ToString("H HH");//13 13
    dt.ToString("h hh");//1  01
    dt.ToString("m mm");//16 16
    dt.ToString("s ss");//32 32
    dt.ToString("F FF FFF FFFF FFFFF FFFFFF FFFFFFF");//1 1  108 108  108   108    108
    dt.ToString("f ff fff ffff fffff ffffff fffffff");//1 10 108 1080 10800 108000 1080000
    dt.ToString("z zz zzz");//+8 +08 +08:00
    
    dt.ToString("yyyy/MM/dd HH:mm:ss.fff"); //2017/04/01 13:16:32.108
    dt.ToString("yyyy/MM/dd dddd");      //2017/04/01 星期六
    dt.ToString("yyyy/MM/dd dddd tt hh:mm"); //2017/04/01 星期六 下午 01:16
    dt.ToString("yyyyMMdd");         //20170401
    dt.ToString("yyyy-MM-dd HH:mm:ss.fff"); //2017-04-01 13:16:32.108