Есть ли простой способ сделать часть объекта NSString верхним или нижним индексом? - PullRequest
2 голосов
/ 19 августа 2010

Например, предположим, у меня есть NSString @ "20O (2H, 1H) 19O", и я хочу, чтобы все числа были надстрочными. Есть ли простой способ сделать это?

Ответы [ 2 ]

5 голосов
/ 19 августа 2010

Я думаю, что вы, вероятно, хотите NSAttributedString с NSSuperScriptAttributeName. Если вам нужно сохранить его в NSString, Юникод содержит символы для надстрочных цифр .

3 голосов
/ 29 октября 2011

Эта функция должна возвращать заданное число в верхнем индексе.Очень просто

-(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;   
}

При заданной числовой строке она просто возвращает эквивалентную строку верхнего индекса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...