統計含中英文混編的NSString 字符串長度


將一個NSString類型字符串獲取的長度轉換成類似ASCII編碼的長度,如漢字2個字節,英文以及符號1個字節這個功能。
由於使用[NSString length]方法調用獲取的長度是一個中文和一個英文都是一個字節,而使用

[NSString lengthOfBytesUsingEncoding:NSASCIIStringEncoding] 方法無法識別中文編碼,真是令人揪心。

於是想獲得一個char*類型的字符串,然后自己遍歷一遍,將它整理為類似ASCII編碼的格式,這里要用到

[NSString cStringUsingEncoding:NSUnicodeStringEncoding]函數獲得一個const char*指針,然后對這個字符串進行遍歷,遇/0就跳過,否則length+1,下面是代碼,拿出來與大家分享:

-  (int)convertToInt:(NSString*)strtemp {

         int strlength = 0;
        char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding];
        for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) {
             if (*p) {
                     p++;
                     strlength++;
             }
            else {
                p++;
           }
      }
      return strlength;

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM