将Unichar Array转换为单个NSString

时间:2011-09-13 13:22:21

标签: iphone objective-c ios nsstring

我使用NSString对象中的'characterAtIndex:'创建了一个unicode char数组。

我想让数组中的字符再次变成一个完整的字符串。

有没有方法可以将这个unicahr数组转换为NSStirng? 谁能请帮帮我???

这是我的代码:

NSString *sentence = @"A long string";
NSString *new = [[NSString alloc]init];
unichar aBuffer[[sent length]];
int j=0;
//Tried to reverse the string:
for (int i=[sent length]-1; i>=0; i--,j++) {
    aBuffer[j]=[sent characterAtIndex:i];
    }

我发现了一种比这更好的反转方式,但是让我知道我们是否有任何方法......

4 个答案:

答案 0 :(得分:3)

您可以使用unichargetCharacters:range:转换为stringWithCharacters:并返回。

NSString *sentence = @"A long unicode sentence";

NSUInteger length = [sentence length];
unichar aBuffer[length + 1];

[sentence getCharacters:aBuffer range:NSMakeRange(0, length)];
aBuffer[length] = 0x0;

NSString *newStr = [NSString stringWithCharacters:aBuffer length:length];

NSLog(@"%@", newStr);

答案 1 :(得分:2)

从字节数组中获取NSString

- (id)initWithBytes:(const void *)bytes length:(NSUInteger)length encoding:(NSStringEncoding)encoding

(您可以使用UTF8String而不是使用characterAtIndex:循环遍历字符串

答案 2 :(得分:2)

阵列是标准的c阵列吗? (看起来像这样:array[50];)如果是,你可以这样做:

[NSString stringWithCharacters:(const unichar*) length:(NSUInteger)];

答案 3 :(得分:0)

您可以使用Toll-Free Bridging将char数组转换为objective-c类或反向。

你可以用你的数组创建一个CFMutableStringRef变量,假设变量是myString。你可以用它创建一个字符串或一个可变的字符串。

NSMutableString* objcString = (NSMutableString*) myString;