假設我得到如下字符串:如何獲得NSString的「真實長度」
NSString * str = @「abc一二三」;
包含英語和中國,如果我使用[STR長度]我得到 結果6.我想是1 + 1 + 1 + 2 + 2 + 2 = 9,一箇中國字符 等於結果2英文字母。
希望有人能幫助我,謝謝^ _^
假設我得到如下字符串:如何獲得NSString的「真實長度」
NSString * str = @「abc一二三」;
包含英語和中國,如果我使用[STR長度]我得到 結果6.我想是1 + 1 + 1 + 2 + 2 + 2 = 9,一箇中國字符 等於結果2英文字母。
希望有人能幫助我,謝謝^ _^
那麼,這將是乏味的,但你可以創建自己的字符串長度的方法。具有switch語句的方法,該語句分別檢查字符並相應地分配整數值,然後返回總和。例如:
- (NSInteger)specialStringLength:(NSString *)theString {
int realLength=0;
for(int x=0;x<[theString length];x++)
{
char thisOne = [theString characterAtIndex:x];
switch(thisOne) {
case 'a':
realLength++;
break;
// and so on...
case '三':
realLength+=2;
break;
// and so on...
}
}
return realLength;
}
也許你可以將NSString轉換爲NSData,並使用NSData的長度。
您使用的中文字符是單個UTF-8字符 - 您爲什麼想要假裝否則。 – 2011-03-24 13:09:09
也許海報需要字節,而不是字符 - 例如分配存儲空間。但是,這將是12個字節,因爲UTF-8中的漢語字符每個需要3個字節,而不是2個。 – 9000 2011-03-24 13:18:37
爲什麼您認爲一個漢字等於兩個英文字母?你認爲該字符串中的前四個字符是什麼? – gnasher729 2015-01-20 00:05:13