-1

我有一个NSMutableString名为 MyMutableStr 的实例,我想在索引 7 处访问它的字符。

例如:

unsigned char cMy = [(NSString*) MyMutableStr characterAtIndex:7];

我认为这是一种丑陋的方式;代码太多了。

我的问题是:Objective-C 中是否有更简单的方法来访问 中的字符NSMutableString

就像,在 C 语言中,我们可以使用 [ ] 运算符访问字符串的字符:

unsigned char cMy = MyMutableStr[7];
4

2 回答 2

0

这样做的方法是使用characterAtIndex:,但您不需要将其转换为NSString指针,因为NSMutableString它是NSString. 所以它不是那么长,但如果你仍然觉得它不舒服,我建议使用UTF8String获取一个 C 字符串,你可以使用方括号运算符对其进行迭代:

const char* cString= [MyMutableStr UTF8String];
char first= cString[0];

但请记住这一点(取自NSString 类参考):

返回的 C 字符串会自动释放,就像释放返回的对象一样;如果需要将 C 字符串存储在创建 C 字符串的自动释放上下文之外,则应该复制它。

于 2013-08-25T19:01:02.963 回答
0

正如其他人所说,characterAtIndex:但您可能需要仔细考虑一些事情。

首先,您正在处理一个可变字符串。你要小心避免它从你下面改变。一种方法是获取不可变副本并将其用于操作。

其次,您正在处理 Unicode,因此您可能需要考虑规范化您的字符串以获得预先组合的形式,因为某些视觉表示可能不止一个实际的 unichar。这往往是人们的绊脚石。

于 2013-08-26T00:00:04.197 回答