簡單任務:我需要將兩個字符轉換爲兩個數字,將它們相加並將其更改回一個字符。
什麼我有:(在Java中完美的作品 - 其中編碼爲您處理,我猜):Objective-C字符編碼 - 將char更改爲int,然後返回
int myChar1 = (int)([myText1 characterAtIndex:i]);
int myChar2 = (int)([myText2 characterAtIndex:keyCurrent]);
int newChar = (myChar1 + myChar2);
//NSLog(@"Int's %d, %d, %d", textChar, keyChar, newChar);
char newC = ((char) newChar);
NSString *tmp1 = [NSString stringWithFormat:@"%c", newC];
NSString *tmp2 = [NSString stringWithFormat:@"%@", newString];
newString = [NSString stringWithFormat:@"%@%@", tmp2, tmp1]; //Adding these char's in a string
的算法是完美的,但現在我無法弄清楚如何實現編碼屬性。我想用UTF-8做所有事情,但不知道如何獲得一個char
的UTF-8值。如果我掌握了它,如何將這個值改回char
。
代碼中的NSLog
輸出正確的值。但是,當我嘗試用算法做相反的處理(即值爲-
)時,它就會出錯。奇怪/奇怪的字符會得到錯誤的字符值。
有一件事,你不能只加減UTF-8字符,因爲它們可以多達6個字節長。此外,內部NSStrings使用類似於UCS-2的代碼點來表示它們的字符,並且您將得到一個2字節的UniChar,而不是一個int或一個字符。 – 2011-12-17 08:06:18
`H + H`會讓你在代碼點'U + 90',這不是一個字符。這真的是你想要的嗎? – deceze 2011-12-17 08:13:39