2011-07-26 9 views
6

1、2、3の上付き文字を出力できるUnicode、またはいくつかのメソッドまたはバイト言語を探しています。何らかの理由でUnicodeに0、4の上付き文字があります。 、5,6,7,8,9、しかし1,2,3ではありません。NSString:上付き文字のUnicodeを探しています:

NSStringのHTMLのような上付き文字は使用できますか?

答えて

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 

これ、あなたがしたい、NSStringsにそれらを作るために:

NSString *superscript1 = @"\u00B9"; 
NSString *superscript2 = @"\u00B2"; 
NSString *superscript3 = @"\u00B3"; 
5

私はこの質問が既に回答されている知っているが、誰もが上付き文字に数字の標準文字列から変換するための私のコードを再利用したい場合は、ここにあります。

-(NSString *)superScriptOf:(NSString *)inputNumber{ 

    NSString *[email protected]""; 
    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 *[email protected]""; 
    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; 
} 
+2

でPTは、ちょうどからobjectAtIndexを取るすべての文字の配列を持つことがはるかに簡単だろうですアレイ。 – jrturton

関連する問題