新浪微博字數統計,新浪博字數統計
新浪微博字數統計,中文字元為一個長度,英文、數字、標點符號2個為一個長度。而NSString的length方法無論是中文英文數字還是標點符號通過都返回1。
在做數字統計的時候第一個想到的是用Regex去實現(IOS常用Regex)。查了一下,Regex的話只返回該字串中是否包含指定規則的文字,並不能統計字串中有多少個中文。
其實後來想想也是可以的,用Regex規則 for 一下字串的每一個字元,但不知道效率咋樣~。反正我用下面這中方法在- (void)textViewDidChange:(UITextView *)textView 這個代理方法中輪詢就會導致在UITextView中輸入的時候卡卡的,讓人覺得特別彆扭。該方法不可取!!!
-(NSInteger)countTextViewLength:(NSString*)textString{ int chineseCharacter = 0; int numAndSymbol = 0; for (int i = 0; i < [textString length]; i++) { int tmp = [textString characterAtIndex:i]; if (tmp > 0x4e00 && tmp < 0x9fff) { NSLog(@"第%i個是漢字:%@",i,[textString substringWithRange:NSMakeRange(i, 1)]); chineseCharacter++; }else{ numAndSymbol++; } } currentLength = chineseCharacter + numAndSymbol/2; return currentLength;}
Google了一下,找到了Keefo分享的新浪微博字數統計代碼,就直接拿過來用了。代碼如下:
- (int)sinaCountWord:(NSString*)s{ int i,n=[s length],l=0,a=0,b=0; unichar c; for(i=0;i<n;i++){ c=[s characterAtIndex:i]; if(isblank(c)){ b++; }else if(isascii(c)){ a++; }else{ l++; } } if(a==0 && l==0) return 0; return l+(int)ceilf((float)(a+b)/2.0);}
附加學習資料:objc中國的字串#字串學習專題非常不錯,強烈推薦看一下。特別不錯,強烈推薦去看看!
新浪部落格上發表的文章字數怎統計?
你把你所發表文章用Word編輯噻!不就可以看見位元組和字數嗎?
新浪部落格有字數統計的功可以
你把你所發表文章用Word編輯一下不就可以看見字數嗎