Platform::String 類別
用來代表文字之 Unicode 字元的循序集合。 如需詳細資訊和範例,請參閱 字串。
語法
public ref class String sealed : Object,
IDisposable,
IEquatable,
IPrintable
迭代器
兩個不是 String 類別成員的反覆運算器函式可以搭配函式範本使用 std::for_each
,以列舉 String 物件中的字元。
member | 描述 |
---|---|
const char16* begin(String^ s) |
讓指標回到指定 String 物件的開頭。 |
const char16* end(String^ s) |
讓指標回到指定 String 物件的結尾之後。 |
成員
字串類別繼承自 Object 以及 IDisposable、IEquatable 與 IPrintable 介面。
字串類別也有下列幾種型别的成員。
建構函式
member | 描述 |
---|---|
String::String | 初始化字串類別的新執行個體。 |
方法
字串類別會從 Platform::Object Class繼承 Equals()、Finalize()、GetHashCode()、GetType()、MemberwiseClose() 與 ToString() 等方法。 字串也有下列方法。
方法 | 描述 |
---|---|
String::Begin | 讓指標回到目前字串的開頭。 |
String::CompareOrdinal | 評估物件所代表之兩個字串值中的對應字元數值,藉以比較兩個 String 物件。 |
String::Concat | 串連兩個 String 物件的值。 |
String::D ata | 讓指標回到目前字串的開頭。 |
String::D ispose | 釋放或釋出資源。 |
String::End | 讓指標回到目前字串的結尾之後。 |
String::Equals | 指出指定的物件是否等同於目前的物件。 |
String::GetHashCode | 傳回這個執行個體的雜湊碼。 |
String::IsEmpty | 指出目前 String 物件是否為空。 |
String::IsFastPass | 指出目前的 String 物件是否參與 快速傳遞 作業。 在快速傳遞作業時,參考計數會暫停。 |
String::Length | 擷取目前 String 物件的長度。 |
String::ToString | 傳回值與目前字串相同的 String 物件。 |
操作員
String 類別具有下列運算符。
member | 描述 |
---|---|
String::operator== 運算符 | 指出兩個指定的 String 物件是否具有相同的值。 |
operator+ 運算子 | 將兩個 String 物件串連成新的 String 物件。 |
String::operator> 運算符 | 指出其中一個 String 物件的值是否大於另一個 String 物件的值。 |
String::operator>= 運算符 | 指出其中一個 String 物件的值是否大於或等於另一個 String 物件的值。 |
String::operator!= 運算符 | 指出兩個指定的 String 物件是否有不同的值。 |
String::operator< 運算符 | 指出其中一個 String 物件的值是否小於另一個 String 物件的值。 |
需求
最低支援用戶端: Windows 8
最低支援伺服器: Windows Server 2012
命名空間: Platform
標頭 :vccorlib.h (預設包含)
String::Begin 方法
讓指標回到目前字串的開頭。
語法
char16* Begin();
傳回值
位於目前字串開頭處的指標。
String::CompareOrdinal 方法
靜態方法,可藉由評估 物件所表示之兩個字元串值中對應字元的數值,比較兩 String
個物件。
語法
static int CompareOrdinal( String^ str1, String^ str2 );
參數
str1
第一個 String 物件。
str2
第二個 String 物件。
傳回值
整數,表示兩個比較元 (Comparand) 之間的語彙關係。 下表列出可能的傳回值。
ReplTest1 | Condition |
---|---|
-1 | str1 小於 str2 。 |
0 | str1 等於 str2 。 |
1 | str1 大於 str2 。 |
String::Concat 方法
串連兩個 String 物件的值。
語法
String^ Concat( String^ str1, String^ str2);
參數
str1
第一個 String 物件,或 null
。
str2
第二個 String 物件,或 null
。
傳回值
由 str1
與 str2
兩者的值串連後得出其值的新 String^ 物件。
如果 str1
為 null
而 str2
不是,則會傳回 str1
。 如果 str2
為 null
而 str1
不是,則會傳回 str2
。 如果 str1
與 str2
都是 null
,則會傳回空字串 (L"")。
String::Data 方法
傳回物件資料緩衝區開頭的指標當做 char16
(wchar_t
) 元素的 C-style 陣列。
語法
const char16* Data();
傳回值
Unicode 字元陣列開頭的const char16
指標(char16
是的 typedef 。wchar_t
備註
使用這個方法可從 Platform::String^
轉換為 wchar_t*
。 當 String
物件超出範圍時,資料指標不再保證有效。 若要將資料儲存在原始 String
物件的存留期之外,請使用 wcscpy_s 將陣列複製到您自己配置的記憶體中。
String::Dispose 方法
釋放或釋出資源。
語法
virtual override void Dispose();
String::End 方法
讓指標回到目前字串的結尾之後。
語法
char16* End();
傳回值
超過目前字串結尾的指標。
備註
End() 會傳回 Begin() + Length。
String::Equals 方法
指出指定的字串是否擁有與目前物件相同的值。
語法
bool String::Equals(Object^ str);
bool String::Equals(String^ str);
參數
str
要比較的物件。
傳回值
如果 true
等於目前物件則為 str
,否則為 false
。
備註
這個方法相當於靜態 String::CompareOrdinal。 在第一個多載中,str
參數應該可以轉換成 String^ 物件。
String::GetHashCode 方法
傳回這個執行個體的雜湊碼。
語法
virtual override int GetHashCode();
傳回值
這個執行個體的雜湊碼。
String::IsEmpty 方法
指出目前 String 物件是否為空。
語法
bool IsEmpty();
傳回值
true
如果目前的 String
物件為 null 或空字串 (L“”),則為 ,false
否則為 。
String::IsFastPass 方法
指出目前的 String 物件是否參與 快速傳遞 作業。 在快速傳遞作業時,參考計數會暫停。
語法
bool IsFastPass();
傳回值
true
如果目前的 String
物件是快速過去,則為 ,否則為 false
。
備註
在呼叫函式時如果參考計數的物件是參數,而被呼叫的函式只讀取該物件,則編譯器可以安全地暫停參考計數,改善呼叫效能。 您的程式碼不需要處理這個屬性, 系統會處理所有的細節。
String:: length 方法
擷取目前 String
物件中的字元數。
語法
unsigned int Length();
傳回值
目前 String
物件中的字元數。
備註
String 的長度,其中沒有字元為零。 以下字串的長度為 5:
String^ str = "Hello";
int len = str->Length(); //len = 5
String::D ata 傳回的字元陣列有一個額外的字元,也就是終止的 NULL 或 '\0'。 這個字元的長度也是兩個位元組。
String:: operator + 運算子
將兩 個 String 物件串連至新的 String 物件。
語法
bool String::operator+( String^ str1, String^ str2);
參數
str1
第一個 String
物件。
str2
第二個 String
物件,其內容將會附加至 str1
。
傳回值
true
如果 str1 等於 str2,則為 ,否則為 false
。
備註
這個運算子會建立 String^
物件,其中包含這兩個運算元的資料。 當極端的效能不重要時,可基於方便的理由使用它。 在函式中呼叫 "+
" 幾次可能不會被注意到,但是,如果您在緊密迴圈中操作大型物件或文字資料,請使用標準 C++ 機制和類型。
String::operator== 運算符
指出兩個指定的 String 物件是否具有相同的文字值。
語法
bool String::operator==( String^ str1, String^ str2);
參數
str1
要比較的第一個 String
物件。
str2
要比較的第二個 String
物件。
傳回值
true
如果的內容 str1
等於 str2
,則為 ,否則為 false
。
備註
這個運算符相當於 String::CompareOrdinal。
String::operator>
指出一個 String
物件的值是否大於第二 String
個物件的值。
語法
bool String::operator>( String^ str1, String^ str2);
參數
str1
第一個 String
物件。
str2
第二個 String
物件。
傳回值
如果 true
的值大於 str1
的值,則為 str2
,否則為 false
。
備註
這個運算子相當於明確呼叫 String::CompareOrdinal 並取得大於零的結果。
String::operator>=
指出一個 String
物件的值是否大於或等於第二 String
個物件的值。
語法
bool String::operator>=( String^ str1, String^ str2);
參數
str1
第一個 String
物件。
str2
第二個 String
物件。
傳回值
如果 true
的值大於或等於 str1
的值,則為 str2
,否則為 false
。
String::operator!=
指出兩個指定的 String
物件是否有不同的值。
語法
bool String::operator!=( String^ str1, String^ str2);
參數
str1
要比較的第一個 String
物件。
str2
要比較的第二個 String
物件。
傳回值
如果 true
不等於 str1
,則為 str2
,否則為 false
。
String::operator<
指出一個 String
物件的值是否小於第二 String
個物件的值。
語法
bool String::operator<( String^ str1, String^ str2);
參數
str1
第一個 String
物件。
str2
第二個 String
物件。
傳回值
true
如果 str1 的值小於 str2 的值,則為 ,false
否則為 。
String::String 建構函式
使用輸入字串數據的複本,初始化 類別的新實例 String
。
語法
String();
String(char16* s);
String(char16* s, unsigned int n);
參數
s
初始設定字串的一系列寬字元。 char16
n
用以指定字串長度的數值。
備註
如果效能很重要,而且您可以控制來源字串的存留期,您可以使用 Platform::StringReference 取代 String。
範例
String^ s = L"Hello!";
String::ToString
傳 String
回 物件,其值與目前字串相同。
語法
String^ String::ToString();
傳回值
String
物件,其值與目前字串相同。