Platform::String 类
用于表示文本的 Unicode 字符的有序集合。 有关详细信息和示例,请参阅字符串。
语法
public ref class String sealed : Object,
IDisposable,
IEquatable,
IPrintable
迭代器
两个迭代器函数(不是字符串类的成员)可以和 std::for_each
函数模板结合使用来枚举字符串对象中的字符。
成员 | 说明 |
---|---|
const char16* begin(String^ s) |
返回指向指定字符串对象开头的指针。 |
const char16* end(String^ s) |
返回通过指定字符串对象末尾的指针。 |
成员
此字符串类从对象、IDisposable、IEquatable 和 IPrintable 接口继承。
此字符串类还具有以下类型的成员。
构造函数
成员 | 说明 |
---|---|
String::String | 初始化字符串类的新实例。 |
方法
此字符串类从 Platform::Object Class继承 Equals()、Finalize(), GetHashCode()、GetType()、MemberwiseClose() 和 ToString() 方法。 字符串还具有以下方法。
方法 | 说明 |
---|---|
String::Begin | 返回指向当前字符串开头的指针。 |
String::CompareOrdinal | 通过估计对象所表示的两个字符值中相应字符的数字值来比较两个 String 对象。 |
String::Concat | 连接两个字符串对象的值。 |
String::Data | 返回指向当前字符串开头的指针。 |
String::Dispose | 释放资源。 |
String::End | 返回通过当前字符串末尾的指针。 |
String::Equals | 指示指定对象是否等于当前对象。 |
String::GetHashCode | 返回此 实例的哈希代码。 |
String::IsEmpty | 指示当前字符串对象是否为空。 |
String::IsFastPass | 指示当前 String 对象是否参与快速传递操作。 在快速传递操作中,将挂起引用计数。 |
String::Length | 检索当前字符串对象的长度。 |
String::ToString | 返回一个字符串对象,其值与当前字符串相同。 |
运算符
String 类具有以下运算符。
成员 | 说明 |
---|---|
String::operator== 运算符 | 指示指定的字符串对象是否具有相同的值。 |
operator+ 运算符 | 将两个字符串对象串联成一个新的字符串对象。 |
String::operator> 运算符 | 指示一个字符串对象的值是否大于或等于第二个字符串对象的值。 |
String::operator>= 运算符 | 指示一个字符串对象的值是否大于或等于第二个字符串对象的值。 |
String::operator!= 运算符 | 指示两个指定字符串对象是否具有不同的值。 |
String::operator< 运算符 | 指示一个字符串对象的值是否小于第二个字符串对象的值。 |
要求
支持的最低客户端版本:Windows 8
支持的最低服务器版本:Windows Server 2012
命名空间: Platform
头文件 vccorlib.h(默认包含在内)
String::Begin 方法
返回指向当前字符串开头的指针。
语法
char16* Begin();
返回值
指向当前字符串开头的指针。
String::CompareOrdinal 方法
静态方法,通过估计对象所表示的两个字符值中相应字符的数字值来比较两个 String
对象。
语法
static int CompareOrdinal( String^ str1, String^ str2 );
参数
str1
第一个字符串对象。
str2
第二个字符串对象。
返回值
一个整数,指示两个比较字之间的词法关系。 下表列出可能的返回值。
值 | 条件 |
---|---|
-1 | str1 小于 str2 。 |
0 | str1 等于 str2 。 |
1 | str1 大于 str2 。 |
String::Concat 方法
连接两个字符串对象的值。
语法
String^ Concat( String^ str1, String^ str2);
参数
str1
第一个字符串对象或 null
。
str2
第二个字符串对象或 null
。
返回值
其值为 str1
与 str2
的值相连的新 String^ 对象。
如果 str1
是 null
而 str2
不是,则返回 str1
。 如果 str2
是 null
而 str1
不是,则返回 str2
。 如果 str1
和 str2
都是 null
,则返回空字符串 (L "")。
String::Data 方法
以 C 样式 char16
(wchar_t
) 元素数组的形式返回指向对象的数据缓冲区开头的指针。
语法
const char16* Data();
返回值
指向 Unicode 字符的 const char16
数组的开头的指针(char16
是 wchar_t
的 typedef)。
注解
使用此方法可从 Platform::String^
转换为 wchar_t*
。 当 String
对象超出范围时,数据指针不再保证有效。 若有存储在原始 String
对象的生存期以外的数据,请使用 wcscpy_s 数组复制到您为自己分配的内存中。
String::Dispose 方法
释放资源。
语法
virtual override void Dispose();
String::End 方法
返回通过当前字符串末尾的指针。
语法
char16* End();
返回值
指向超出当前字符串末尾的指针。
注解
End() 返回 Begin()+长度。
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 方法
指示当前字符串对象是否为空。
语法
bool IsEmpty();
返回值
如果当前 String
对象为 null 或空字符串 (L""),则返回 true
;否则返回 false
。
String::IsFastPass 方法
指示当前 String 对象是否参与快速传递操作。 在快速传递操作中,将挂起引用计数。
语法
bool IsFastPass();
返回值
如果当前 String
对象已快速传递,则返回 true
;否则返回 false
。
备注
在引用计数对象作为参数并且被调用的函数只读取该对象的函数调用中,编译器可以安全地挂起引用计数并改进调用性能。 没有可供你的代码对此属性执行的任何操作。 系统处理所有详细信息。
String::Length 方法
检索当前 String
对象中的字符数。
语法
unsigned int Length();
返回值
当前 String
对象中的字符数。
备注
一个没有字符的字符串的长度为零。 以下字符串的长度为 5:
String^ str = "Hello";
int len = str->Length(); //len = 5
String::Data 返回的字符数组具有一个附加字符,是终止 NULL 或“\0”。 该字符也是两个字节长。
String::operator+ 运算符
语法
bool String::operator+( String^ str1, String^ str2);
参数
str1
第一个 String
对象。
str2
第二个 String
对象,其内容将追加到 str1
。
返回值
如果 str1 等于 str2,则返回 true
;否则返回 false
。
注解
此运算符创建一个 String^
对象,用以包含两个操作数中的数据。 在极端性能并不重要时,使用它只是为了方便。 函数中有些对“+
”的调用可能不明显,但如果在紧凑循环中操作大对象或文本数据,则使用标准 C++ 机制和类型。
String::operator== 运算符
指示指定的字符串对象是否具有相同的文本值。
语法
bool String::operator==( String^ str1, String^ str2);
参数
str1
要比较的第一个 String
对象。
str2
要比较的第二个 String
对象。
返回值
如果 str1
的内容等于 str2
,则为 true
;否则为 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
对象。
返回值
如果 str1 的值小于 str2 的值,则返回 true
;否则返回 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
对象。