我正在寻找可以为 1、2、3 输出上标的 Unicode 或某种方法或字节语言。无论出于何种原因,Unicode 都有 0、4、5、6、7、8、9 的上标,但没有 1、2 , 3.
你能在中做像 HTML 这样的上标NSString
吗?
我正在寻找可以为 1、2、3 输出上标的 Unicode 或某种方法或字节语言。无论出于何种原因,Unicode 都有 0、4、5、6、7、8、9 的上标,但没有 1、2 , 3.
你能在中做像 HTML 这样的上标NSString
吗?
从字符调色板:
¹
SUPERSCRIPT ONE
Unicode: U+00B9, UTF-8: C2 B9
²
SUPERSCRIPT TWO
Unicode: U+00B2, UTF-8: C2 B2
³
SUPERSCRIPT THREE
Unicode: U+00B3, UTF-8: C2 B3
要使它们进入NSStrings
,您将执行以下操作:
NSString *superscript1 = @"\u00B9";
NSString *superscript2 = @"\u00B2";
NSString *superscript3 = @"\u00B3";
我知道这个问题已经得到解答,但是如果有人想重用我的代码来将标准数字字符串转换为上标,这里就是。
-(NSString *)superScriptOf:(NSString *)inputNumber{
NSString *outp=@"";
for (int i =0; i<[inputNumber length]; i++) {
unichar chara=[inputNumber characterAtIndex:i] ;
switch (chara) {
case '1':
NSLog(@"1");
outp=[outp stringByAppendingFormat:@"\u00B9"];
break;
case '2':
NSLog(@"2");
outp=[outp stringByAppendingFormat:@"\u00B2"];
break;
case '3':
NSLog(@"3");
outp=[outp stringByAppendingFormat:@"\u00B3"];
break;
case '4':
NSLog(@"4");
outp=[outp stringByAppendingFormat:@"\u2074"];
break;
case '5':
NSLog(@"5");
outp=[outp stringByAppendingFormat:@"\u2075"];
break;
case '6':
NSLog(@"6");
outp=[outp stringByAppendingFormat:@"\u2076"];
break;
case '7':
NSLog(@"7");
outp=[outp stringByAppendingFormat:@"\u2077"];
break;
case '8':
NSLog(@"8");
outp=[outp stringByAppendingFormat:@"\u2078"];
break;
case '9':
NSLog(@"9");
outp=[outp stringByAppendingFormat:@"\u2079"];
break;
case '0':
NSLog(@"0");
outp=[outp stringByAppendingFormat:@"\u2070"];
break;
default:
break;
}
}
return outp;
}
给定输入的数字字符串,它只返回等效的上标字符串。
编辑(感谢 jrturton):
-(NSString *)superScriptOf:(NSString *)inputNumber{
NSString *outp=@"";
unichar superScripts[] = {0x2070, 0x00B9, 0x00B2,0x00B3,0x2074,0x2075,0x2076,0x2077,0x2078,0x2079};
for (int i =0; i<[inputNumber length]; i++) {
NSInteger x =[[inputNumber substringWithRange:NSMakeRange(i, 1)] integerValue];
outp=[outp stringByAppendingFormat:@"%C", superScripts[x]];
}
return outp;
}
人物存在