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

返回值

其值为 str1str2 的值相连的新 String^ 对象。

如果 str1nullstr2 不是,则返回 str1。 如果 str2nullstr1 不是,则返回 str2。 如果 str1str2 都是 null,则返回空字符串 (L "")。

String::Data 方法

以 C 样式 char16 (wchar_t) 元素数组的形式返回指向对象的数据缓冲区开头的指针。

语法

const char16* Data();

返回值

指向 Unicode 字符的 const char16 数组的开头的指针(char16wchar_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);

参数


初始化字符串的一系列宽字符。 char16

n
指定字符串长度的一个数字。

注解

如果性能非常重要而且你控制源字符串的生存期,可以使用 Platform::StringReference 代替 String。

示例

String^ s = L"Hello!";

String::ToString

返回一个 String 对象,其值与当前字符串相同。

语法

String^ String::ToString();

返回值

其值与当前字符串相同的 String 对象。

另请参阅

Platform 命名空间