我有一个int
值,我从字符爸爸那里获得,这是29240.我可以将这个数字转换为十六进制,但我不知道如何在{{1}中写出中文字符只有NSString
。
基本上,我所做的是:
int 29240
它输出的是29240。
但是,我不知道如何仅从NSString * s = @"爸";
int a = [s characterAtIndex:0];
NSLog(@"%d", a);
创建仅包含爸的NSString
。
我将29240转换为二进制,它给了我7238,但我似乎无法创建一个允许我输入任何整数和int 29240
相应字符的方法。
我可以硬编码,所以我有
NSLog
但是我不知道怎么用任何int来做。
感谢任何可以帮助我的人!
答案 0 :(得分:4)
要从一个(或多个)Unicode字符创建字符串,请使用initWithCharacters
:
unichar c = 29240;
NSString *string = [[NSString alloc] initWithCharacters:&c length:1];
NSString
在内部使用UTF-16字符,所以
这适用于“基本多语言平面”中的所有字符,即最多U+FFFF
的所有字符。以下代码适用于任意字符:
uint32_t ch = 0x1F60E;
ch = OSSwapHostToLittleInt32(ch); // To make it byte-order safe
NSString *s1 = [[NSString alloc] initWithBytes:&ch length:4 encoding:NSUTF32LittleEndianStringEncoding];
NSLog(@"%@", s1);
// Output:
答案 1 :(得分:0)
尝试使用此代码段,让您开始朝着正确的方向前进:
NSString *s = @"0123456789";
for (int i = 0; i < [s length]; i++) {
NSLog(@"Value: %d", [s characterAtIndex:i]);
}
只需将字符作为整数传递:
unichar decimal = 12298;
NSString *charStr = [NSString stringWithFormat:@"%C", decimal];