2014-09-10 124 views
-1

我有一個字符串和一個十六進制的ASCII碼0x1111。 如何在字符串的末尾添加ASCII代碼以查看此代碼的符號?將ASCII碼附加到字符串

NSString* some = @"some"; 
+3

0x1111不是一個ASCII碼。 ASCII碼只能從0x00到0x7f。請說明你的實際情況。 – gnasher729 2014-09-10 13:50:16

+1

這是什麼樣的ASCII值? ASCII是一個7位編碼。 「0x1111」是兩個字節。 – Gutblender 2014-09-10 13:51:27

+0

沒有得到您的問題 – Sport 2014-09-10 13:51:33

回答

1

最簡單的方法:

NSString *some = @"some"; 
some = [[@"@\u1111" stringByAppendingString:some] stringByAppendingString:@"@\u1111"]; 
NSLog(@"Some: %@", some); 

回報:

Some: @ᄑ[email protected]
2

注意NSString s爲不可變的 - 你需要做的NSMutableString附加的東西。 mutableCopy方法適用於此。

NSMutableStringappendFormat:appendString:方法可以追加到最後。格式字符串與傳統的printf(3) C函數類似(添加了用於插入Obj-C對象的%@)。

NSString *some = @"some"; 
char newCharacter = 0x41; 
NSString *stringWithCharacter = [[some mutableCopy] appendFormat:@"%c", newCharacter]; 

另一種方法是從格式字符串中創建新的NSString。這可能是最簡單的。

NSString *some = @"some"; 
NSString *stringWithPrependedCharacter = [NSString stringWithFormat:@"%c%@", 0x41, some]; 
0

您還可以使用以下方法

對於開始追加數據:

NSString *some = @"some"; 
char newCharacter = 0x41; 
NSString *some = [NSString stringwithformat:@"%c%@",newCharacter,some]; 

對於末端附加數據:

NSString *some = @"some"; 
char newCharacter = 0x41; 
NSString *some = [NSString stringwithformat:@"%@%c",some,newCharacter]; 
1

前面已經討論過在評論中ts 0x1111不是一個ASCII字符,但更可能是一個UTF-16字符。

您可以從原來的字符串的新NSString和字符串:

NSString *some = @"some"; 
NSString *combined = [some stringByAppendingString:@"\u1111"]; 

,或者你可以將其追加到NSMutableString

NSString *some = @"some"; 
NSMutableString *str = [NSMutableString new]; 
[str appendString:some]; 
[str appendString:@"\u1111"]; 

如果性質各不相同,那麼你就可以將其從字符轉換爲NSString對象使用:

unichar input = 0x1111; 
NSString *str = [NSString stringWithCharacters:&input 
             length:1]; 

並如上所述追加它。