我有一个十六进制0x1111
的字符串和ASCII码。
如何在字符串的结尾/开头添加ASCII代码以查看此代码的符号?
NSString* some = @"some";
答案 0 :(得分:2)
注意NSString
是不可变的 - 您需要NSMutableString
来附加内容。 mutableCopy
方法对此非常方便。
NSMutableString
的{{1}}或appendFormat:
方法可以追加到最后。格式字符串类似于传统的appendString:
C函数(添加printf(3)
用于插入Obj-C对象)。
%@
另一种方法是从格式字符串创建新的NSString *some = @"some";
char newCharacter = 0x41;
NSString *stringWithCharacter = [[some mutableCopy] appendFormat:@"%c", newCharacter];
。这可能是最简单的。
NSString
答案 1 :(得分:1)
正如评论中已经讨论过的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];
并按上述方式添加。
答案 2 :(得分:1)
最简单的方法:
NSString *some = @"some";
some = [[@"@\u1111" stringByAppendingString:some] stringByAppendingString:@"@\u1111"];
NSLog(@"Some: %@", some);
返回:
Some: @ᄑsome@ᄑ
答案 3 :(得分: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];