在 C# 中,字符串是 Unicode 字符序列或字符數組。
Unicode 字符的範圍將是U+0000 至 U+FFFF。字符數組也稱為文本。所以字符串是文本的表示。字符串由類表示System.String.
String 類定義在.NET 基類 Library 。換句話說,String 對象是一個順序集合System.Char代表字符串的對象。 String對象在內存中的最大大小可以是2GB 或約 10 億個字符.
String類的特點:
- System.String類是不可變的,即一旦創建它的狀態就不能改變。
- 借助 length 屬性,它提供給定字符串中存在的字符總數。
- 字符串對象可以包含空字符,該字符計為字符串長度的一部分。
- 它提供給定字符串中字符的位置。
- 它允許空字符串。空字符串是包含零個字符的 String 對象的有效實例。
- 已聲明但尚未賦值的字符串為 null。嘗試調用該字符串上的方法會拋出NullReferenceException.
- 它還支持搜索字符串、字符串比較、相等性測試、修改字符串、字符串規範化、字符串複製等。
- 它還提供了多種創建字符串的方法,例如使用構造函數、使用串聯等。
Constructor
構造函數 | 說明 |
---|---|
字符串(字符*) | 將 String 類的新實例初始化為指向 Unicode 字符數組的指定指針指示的值。 |
字符串(字符*,Int32,Int32) | 將 String 類的新實例初始化為由指向 Unicode 字符數組的指定指針、該數組中的起始字符位置和長度指示的值。 |
字符串(字符,Int32) | 將 String 類的新實例初始化為由重複指定次數的指定 Unicode 字符指示的值。 |
字符串(字符[]) | 將 String 類的新實例初始化為 Unicode 字符數組指示的值。 |
字符串(Char[]、Int32、Int32) | 將 String 類的新實例初始化為由 Unicode 字符數組、該數組中的起始字符位置和長度指示的值。 |
字符串(SByte*) | 將 String 類的新實例初始化為指向 8 位有符號整數數組的指針所指示的值。 |
字符串(SByte*、Int32、Int32) | 將 String 類的新實例初始化為由指向 8 位有符號整數數組的指定指針、該數組中的起始位置和長度指示的值。 |
字符串(SByte*、Int32、Int32、編碼) | 將 String 類的新實例初始化為由指向 8 位有符號整數數組的指定指針、該數組中的起始位置、長度和 Encoding 對象指示的值。 |
例子:
// C# program to demonstrate the creation
// of string using the constructor
using System;
class Geeks {
// Main Method
public static void Main()
{
char[] chars = { 'G', 'E', 'E', 'K', 'S' };
// Create a string from a character array.
string str1 = new string(chars);
Console.WriteLine(str1);
// Create a string that consists of
// a character repeated 5 times.
string str2 = new string('E', 5);
Console.WriteLine(str2);
}
}
輸出:
GEEKS EEEEE
Properties
屬性 | 說明 |
---|---|
字符[Int32] | 獲取當前 String 對象中指定位置的 Char 對象。 |
Length | 獲取當前 String 對象中的字符數。 |
例子:
// C# program to demonstrate the
// String Class Properties
using System;
class Geeks {
// Main Method
public static void Main()
{
string str = "GeeksforGeeks";
// using Chars[Int32] & Length property
for (int i = 0; i <= str.Length - 1; i++)
Console.Write("{0} ", str[i]);
}
}
輸出:
G e e k s f o r G e e k s
Methods
方法 | 說明 |
---|---|
Clone() | 返回對此 String 實例的引用。 |
Compare() | 用於比較兩個字符串對象。 |
比較序數(字符串,Int32,字符串,Int32,Int32) | 通過計算每個子字符串中相應 Char 對象的數值來比較兩個指定 String 對象的子字符串。 |
CompareOrdinal(String, String) | 通過計算每個字符串中相應 Char 對象的數值來比較兩個指定的 String 對象。 |
CompareTo() | 將當前實例與指定的 Object 或 String 對象進行比較。 |
Concat() | 連接一個或多個 String 實例,或者一個或多個 Object 實例的值的字符串表示形式。 |
Contains(String) | 返回一個值,指示指定的子字符串是否出現在此字符串中。 |
Copy(String) | 創建一個新的 String 實例,其值與指定的 String 相同。 |
CopyTo(Int32, Char[], Int32, Int32) | 將指定數量的字符從此實例中的指定位置複製到 Unicode 字符數組中的指定位置。 |
EndsWith() | 確定此字符串實例的結尾是否與指定字符串匹配。 |
Equals() | 確定兩個 String 對象是否具有相同的值。 |
Format() | 根據指定的格式將對象的值轉換為字符串並將它們插入到另一個字符串中。 |
GetEnumerator() | 檢索一個可以迭代該字符串中各個字符的對象。 |
GetHashCode() | 返回該字符串的哈希碼。 |
GetType() | 獲取當前實例的類型。 (繼承自對象) |
GetTypeCode() | 返回 String 類的TypeCode。 |
IndexOf() | 報告指定 Unicode 字符或字符串在此實例中第一次出現的從零開始的索引。如果在此實例中未找到該字符或字符串,該方法將返回 -1。 |
IndexOfAny() | 報告指定 Unicode 字符數組中任何字符在此實例中第一次出現的索引。如果在此實例中找不到數組中的字符,則該方法返回 -1。 |
插入(Int32,字符串) | 返回一個新字符串,其中指定字符串插入到此實例中的指定索引位置。 |
Intern(String) | 檢索係統對指定字符串的引用。 |
IsInterned(String) | 檢索對指定字符串的引用。 |
IsNormalized() | 指示該字符串是否采用特定的 Unicode 規範化形式。 |
IsNullOrEmpty(String) | 指示指定的字符串是否為 null 或空字符串。 |
IsNullOrWhiteSpace(String) | 指示指定的字符串是否為 null、空或僅由空白字符組成。 |
Join() | 使用每個元素或成員之間的指定分隔符連接指定數組的元素或集合的成員。 |
LastIndexOf() | 報告指定 Unicode 字符或字符串在此實例中最後一次出現的從零開始的索引位置。如果在此實例中未找到該字符或字符串,該方法將返回 -1。 |
MemberwiseClone() | 創建當前對象的淺拷貝。 (繼承自對象) |
Normalize() | 返回一個新字符串,其二進製表示形式采用特定的 Unicode 規範化形式。 |
PadLeft() | 返回指定長度的新字符串,其中當前字符串的開頭用空格或指定的 Unicode 字符填充。 |
PadRight() | 返回指定長度的新字符串,其中當前字符串的末尾用空格或指定的 Unicode 字符填充。 |
Remove() | 返回一個新字符串,其中從當前字符串中刪除了指定數量的字符。 |
Replace() | 返回一個新字符串,其中當前字符串中出現的所有指定 Unicode 字符或字符串均替換為另一個指定的 Unicode 字符或字符串。 |
Split() | 返回一個字符串數組,其中包含此實例中由指定字符串或 Unicode 字符數組的元素分隔的子字符串。 |
StartsWith(String) | 確定此字符串實例的開頭是否與指定字符串匹配。 |
子串(Int32) | 從此實例中檢索子字符串。 |
ToCharArray() | 將此實例中的字符複製到 Unicode 字符數組。 |
ToLower() | 返回此字符串轉換為小寫的副本。 |
ToLowerInvariant() | 返回使用不變區域性的大小寫規則轉換為小寫的此 String 對象的副本。 |
ToString() | 將此實例的值轉換為字符串。 |
ToUpper() | 返回此字符串轉換為大寫的副本。 |
ToUpperInvariant() | 返回使用不變區域性的大小寫規則轉換為大寫的此 String 對象的副本。 |
Trim() | 返回一個新字符串,其中從當前 String 對象中刪除所有出現的一組指定字符。 |
修剪結束(字符[]) | 從當前 String 對象中刪除數組中指定的一組字符的所有尾隨匹配項。 |
修剪開始(字符[]) | 從當前 String 對象中刪除數組中指定的一組字符的所有前導匹配項。 |
例子:
// C# program to illustrate
// String class methods
using System;
class GFG {
static void copymethod()
{
string str1 = "GeeksforGeeks";
string str2 = "geeks";
Console.WriteLine("Original Strings: str1 = "
+ "'{0}' and str2 ='{1}'",
str1, str2);
Console.WriteLine("");
Console.WriteLine("After Copy method");
Console.WriteLine("");
// using the Copy method
// to copy the value of str1
// into str2
str2 = String.Copy(str1);
Console.WriteLine("Strings are str1 = "
+ "'{0}' and str2='{1}'",
str1, str2);
}
// Main method
static public void Main()
{
// variables
string str1 = "geeksforgeeks";
string str2 = "geeksforgeeks";
bool result;
// Compare(string, string) method return true
// because the given strings are equal
result = String.Compare(str1, str2) == 0;
Console.WriteLine("Result of Compare Method: " +result);
// calling method
copymethod();
}
}
輸出:
Result of Compare Method: True Original Strings: str1 = 'GeeksforGeeks' and str2 ='geeks' After Copy method Strings are str1 = 'GeeksforGeeks' and str2='GeeksforGeeks'
Operators
操作符 | 說明 |
---|---|
Equality(String, String) | 確定兩個指定的字符串是否具有相同的值。 |
Inequality(String, String) | 確定兩個指定的字符串是否具有不同的值。 |
例子:
// C# program to illustrate the
// Equality and Inequality operator
using System;
class GFG {
// Main Method
public static void Main(string[] args)
{
string s1 = "WelcomeToGeeks";
string s2 = "WelcomeToGeeks";
bool result1, result2;
// Equality operator return true
// as both string are equal
result1 = s1 == s2;
// Inequality operator return false
// as both string are equal
result2 = s1 != s2;
Console.WriteLine(result1);
Console.WriteLine(result2);
}
}
輸出:
True False
參考:
相關用法
- C# String Clone()用法及代碼示例
- C# String Compare()用法及代碼示例
- C# String CompareOrdinal()用法及代碼示例
- C# String CompareTo()用法及代碼示例
- C# String Concat()用法及代碼示例
- C# String Contains()用法及代碼示例
- C# String Copy()用法及代碼示例
- C# String CopyTo()用法及代碼示例
- C# String EndsWith()用法及代碼示例
- C# String Equals()用法及代碼示例
- C# String Format()用法及代碼示例
- C# String GetEnumerator()用法及代碼示例
- C# String IndexOf()用法及代碼示例
- C# String Insert()用法及代碼示例
- C# String IsInterned()用法及代碼示例
- C# String IsNormalized()用法及代碼示例
- C# String IsNullOrEmpty()用法及代碼示例
- C# String IsNullOrWhiteSpace()用法及代碼示例
- C# String Join()用法及代碼示例
- C# String LastIndexOf()用法及代碼示例
- C# String LastIndexOfAny()用法及代碼示例
- C# String Normalize()用法及代碼示例
- C# String PadLeft()用法及代碼示例
- C# String PadRight()用法及代碼示例
- C# String Remove()用法及代碼示例
注:本文由純淨天空篩選整理自ankita_saini大神的英文原創作品 C# | String class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。