2014-09-10 136 views
-1

我有一个字符串和一个十六进制的ASCII码0x1111。 如何在字符串的末尾添加ASCII代码以查看此代码的符号?将ASCII码附加到字符串

NSString* some = @"some"; 
+3

0x1111不是一个ASCII码。 ASCII码只能从0x00到0x7f。请说明你的实际情况。 – gnasher729 2014-09-10 13:50:16

+1

这是什么样的ASCII值? ASCII是一个7位编码。 “0x1111”是两个字节。 – Gutblender 2014-09-10 13:51:27

+0

没有得到您的问题 – Sport 2014-09-10 13:51:33

回答

1

最简单的方法:

NSString *some = @"some"; 
some = [[@"@\u1111" stringByAppendingString:some] stringByAppendingString:@"@\u1111"]; 
NSLog(@"Some: %@", some); 

回报:

Some: @ᄑ[email protected]
2

注意NSString s为不可变的 - 你需要做的NSMutableString附加的东西。 mutableCopy方法适用于此。

NSMutableStringappendFormat:appendString:方法可以追加到最后。格式字符串与传统的printf(3) C函数类似(添加了用于插入Obj-C对象的%@)。

NSString *some = @"some"; 
char newCharacter = 0x41; 
NSString *stringWithCharacter = [[some mutableCopy] appendFormat:@"%c", newCharacter]; 

另一种方法是从格式字符串中创建新的NSString。这可能是最简单的。

NSString *some = @"some"; 
NSString *stringWithPrependedCharacter = [NSString stringWithFormat:@"%c%@", 0x41, some]; 
0

您还可以使用以下方法

对于开始追加数据:

NSString *some = @"some"; 
char newCharacter = 0x41; 
NSString *some = [NSString stringwithformat:@"%c%@",newCharacter,some]; 

对于末端附加数据:

NSString *some = @"some"; 
char newCharacter = 0x41; 
NSString *some = [NSString stringwithformat:@"%@%c",some,newCharacter]; 
1

前面已经讨论过在评论中ts 0x1111不是一个ASCII字符,但更可能是一个UTF-16字符。

您可以从原来的字符串的新NSString和字符串:

NSString *some = @"some"; 
NSString *combined = [some stringByAppendingString:@"\u1111"]; 

,或者你可以将其追加到NSMutableString

NSString *some = @"some"; 
NSMutableString *str = [NSMutableString new]; 
[str appendString:some]; 
[str appendString:@"\u1111"]; 

如果性质各不相同,那么你就可以将其从字符转换为NSString对象使用:

unichar input = 0x1111; 
NSString *str = [NSString stringWithCharacters:&input 
             length:1]; 

并如上所述追加它。