使用 string 關鍵字來聲明一個字符串變量。
string 關鍵字是 System.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 有 2 個屬性:
- Chars:在當前 String 對象中獲取 Char 對象的指定位置。
- Length:在當前的 String 對象中獲取字符數。
三、String 類的方法
String 類有許多方法用於 string 對象的操作。
以下爲最常用的方法:
序號 | 方法名稱 & 描述 | 例 |
---|---|---|
1 | public static int Compare( string strA, string strB, bool ignoreCase ) 比較兩個指定的 string 對象,並返回一個表示它們在排列順序中相對位置的整數。但是,如果布爾參數爲 true時,該方法不區分大小寫,默認爲 false。 | string.Compare(str1, str2,true) 相同返回 0,否則返回 -1 |
2 | public static string Concat( string str0, string str1… ) 連接多個 string 對象。 | string.Concat(str1,str2,str3) |
3 | public bool Contains( string value ) 返回一個表示指定 string 對象是否出現在字符串中的值。 | str1.Contains(str2) |
8 | public void CopyTo( int sourceIndex, char[] destination, int destinationIndex, int count ) 從 string 對象的指定位置開始複製指定數量的字符到 Unicode 字符數組中的指定位置。 | strSource.CopyTo ( 0, destination, 4, strSource.Length ); |
9 | public bool EndsWith( string value ) 判斷 string 對象的結尾是否匹配指定的字符串。 | str1.EndsWith(“est”) |
10 | public bool Equals( string value ) 判斷當前的 string 對象是否與指定的 string 對象具有相同的值。 | str1.Equals(str2) |
11 | public static bool Equals( string a, string b ) 判斷兩個指定的 string 對象是否具有相同的值。 | string.Equals(str1,str2) |
12 | public static string Format( string format, Object arg0 ) 把指定字符串中一個或多個格式項替換爲指定對象的字符串表示形式。 | string.Format(“word: {0}”,str1) |
14 | public int IndexOf( string value ) 返回指定字符串在該實例中第一次出現的索引,索引從 0 開始。 | str1.IndexOf(“is”) 沒有找到返回 -1 |
16 | public int IndexOf( string value, int startIndex ) 返回指定字符串從該實例中指定字符位置開始搜索第一次出現的索引,索引從 0 開始。 | str1.IndexOf(“is”,3) 沒有找到返回 -1 |
17 | public int IndexOfAny( char[] anyOf ) 返回某一個指定的 Unicode 字符數組中任意字符在該實例中第一次出現的索引,索引從 0 開始。 | char[] yy = { ‘t’, ‘e’ }; str1.IndexOfAny(yy); |
18 | public int IndexOfAny( char[] anyOf, int startIndex ) 返回某一個指定的 Unicode 字符數組中任意字符從該實例中指定字符位置開始搜索第一次出現的索引,索引從 0 開始。 | str1.IndexOfAny(yy, 3); |
19 | public string Insert( int startIndex, string value ) 返回一個新的字符串,其中,指定的字符串被插入在當前 string 對象的指定索引位置。 | str1.Insert(3,“uuu”) |
20 | public static bool IsNullOrEmpty( string value ) 指示指定的字符串是否爲 null 或者是否爲一個空的字符串。 | string.IsNullOrEmpty(str3) |
21 | public static string Join( string separator, string[] value ) 連接一個字符串數組中的所有元素,使用指定的分隔符分隔每個元素。 | string [] str3= {str1,str2 }; string.Join(" d ",str3) |
22 | public static string Join( string separator, string[] value, int startIndex, int count ) 連接接一個字符串數組中的指定位置開始的指定元素,使用指定的分隔符分隔每個元素。 | string.Join(“d”,str3,1,2) |
24 | public int LastIndexOf( string value ) 返回指定字符串在當前 string 對象中最後一次出現的索引位置,索引從 0 開始。 | str1.LastIndexOf(“i”) 沒有找到返回 -1 |
25 | public string Remove( int startIndex ) 移除當前實例中的所有字符,從指定位置開始,一直到最後一個位置爲止,並返回字符串。 | str1.Remove(5) 不會改變原字符串,僅把移除後的字符串作爲返回值 |
26 | public string Remove( int startIndex, int count ) 從當前字符串的指定位置開始移除指定數量的字符,並返回字符串。 | str1.Remove(5,3) |
28 | public string Replace( string oldValue, string newValue ) 把當前 string 對象中,所有指定的字符串替換爲另一個指定的字符串,並返回新的字符串。 | str1.Replace(“Th”,“w”) |
29 | public string[] Split( params char[] separator ) 返回一個字符串數組,包含當前的 string 對象中的子字符串,子字符串是使用指定的 Unicode 字符數組中的元素進行分隔的。 | str1.Split(“is”) |
30 | public string[] Split( char[] separator, int count ) 返回一個字符串數組,包含當前的 string 對象中的子字符串,子字符串是使用指定的 Unicode 字符數組中的元素進行分隔的。int 參數指定要返回的子字符串的最大數目。 | str1.Split(“is”,2) |
31 | public bool StartsWith( string value ) 判斷字符串實例的開頭是否匹配指定的字符串。 | str1.StartsWith(“Th”) |
32 | public char[] ToCharArray() 返回一個帶有當前 string 對象中所有字符的 Unicode 字符數組。 | str1.ToCharArray() |
33 | public char[] ToCharArray( int startIndex, int length ) 返回一個帶有當前 string 對象中所有字符的 Unicode 字符數組,從指定的索引開始,直到指定的長度爲止。 | str1.ToCharArray(2,3) |
34 | public string ToLower() 把字符串轉換爲小寫並返回。 | str1.ToLower() |
35 | public string ToUpper() 把字符串轉換爲大寫並返回。 | str1.ToUpper() |
36 | public string Trim() 移除當前 String 對象中的所有前導空白字符和後置空白字符。 | str1.Trim() |
例:對比兩個字符串是否相同
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.
例:查詢字符串是否包含另一個字符串
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() ;
}
}
}
運行結果:
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() ;
}
}
}
運行結果:
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