iOS中英文混排,獲取字串長度(中文字元數)
阿新 • • 發佈:2019-01-01
將一個NSString型別字串獲取的長度轉換成類似ASCII編碼的長度,如漢字2個位元組,英文以及符號1個位元組這個功能。
用一個char*型別的字串,然後自己遍歷一遍,將它整理為類似ASCII編碼的格式,用到 [NSString cStringUsingEncoding:NSUnicodeStringEncoding]函式獲得一個const char*指標,然後對這個字串進行遍歷,遇/0就跳過,否則length+1,就可以解決此問題。
用一個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 (strength+1)/2;
}