NSString: в поисках Юникода для верхнего индекса: 1, 2, 3 - PullRequest
6 голосов
/ 27 июля 2011

Я ищу Unicode или какой-либо метод или язык байтов, которые могут выдавать верхние индексы для 1, 2, 3. По любой причине Unicode имеет верхние индексы для 0, 4, 5, 6, 7, 8, 9, но1, 2, 3.

Можете ли вы сделать верхние индексы, такие как HTML, в NSString?

Ответы [ 3 ]

5 голосов
/ 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;   
}

Учитывая входную строку чисел, этопросто возвращает эквивалентную строку верхнего индекса.

Редактировать (спасибо 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;   
}
5 голосов
/ 27 июля 2011

Из палитры персонажей:

¹
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";
3 голосов
/ 27 июля 2011

Символы существуют

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