NSString:寻找上标的Unicode:1,2,3

Kri*_*son 6 cocoa-touch objective-c

我正在寻找Unicode或某些方法或字节语言可以输出1,2,3的上标.无论出于何种原因,Unicode都有0,4,5,6,7,8,9的上标,但不是1,2 ,3.

你可以做HTML之类的上标NSString吗?

Dav*_*ong 5

从字符调色板:

¹
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
Run Code Online (Sandbox Code Playgroud)

这样,为了使它们成为NSStrings,你会做:

NSString *superscript1 = @"\u00B9";
NSString *superscript2 = @"\u00B2";
NSString *superscript3 = @"\u00B3";
Run Code Online (Sandbox Code Playgroud)


Taw*_*iqh 5

我知道这个问题已经得到了解答,但如果有人想重用我的代码从标准的数字字符串转换为上标,这里就是.

-(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;   
}
Run Code Online (Sandbox Code Playgroud)

给定一个输入的数字字符串,它只返回等效的上标字符串.

编辑(感谢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;   
}
Run Code Online (Sandbox Code Playgroud)

  • 拥有所有字符的数组会更简单,然后从数组中获取objectAtIndex. (2认同)