http://www.mr3g.net/?p=220
参考sina的js版本而来,费弄最多的时间就是java对ansii码的判断了,js直接就是isascii()函数就可以实现了,java还要想办法
最后参考了两篇文章,才整出来这个判断
 
 
js代码:

 
- (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);

}


参考js版本,java实现代码:

      /**
       * 新浪微博内容计数器
       *
       * @param s
       * @return
       */
      public static int sinaCountWord(String s) {
            int i, n = s.length(), l = 0, a = 0, b = 0;
 
            char c;
 
            for (i = 0; i < n; i++) {
 
                  c = s.charAt(i);
 
                  if (Character.isWhitespace(c)) {
 
                        b++;
 
                  } else if (c >= 0 && c <= 127) {
 
                        // } else if (!Character.isLetter(c)) {
                        a++;
 
                  } else {
                        l++;
 
                  }
 
            }
 
            if (a == 0 && l == 0)
                  return 0;
 
            return l + (int) Math.ceil((float) (a + b) / 2.0);
      }

 
参考文章链接:
两个判断方法原理是一样的,只不过一个实现的是用十进制判断,另一个是16进制
//这个判断实现的是,用数字来判断,就是16进制0x00的十进制值
if(ch>=127||ch<0)return false;
 
//这个判断实现的是,用字节比较16进制(0x00)内容
#define UTF8_ASCII(byte) (((unsigned char)(byte)>=0x00)&&((unsigned char)(byte)<=0x7F)) 
 
 

最新文章

  1. JavaScript面向对象的程序设计
  2. C#汉字转拼音帮助类
  3. python——进程基础
  4. auth用户认证库
  5. PHP与Javascript的混合测试
  6. 用javascript实现简单排序算法
  7. Java Hour 26 Execution
  8. eclipse如何调试(Debug)程序(zhuan)
  9. linux缓冲的概念fopen /open,read/write和fread/fwrite区别
  10. iOS 进阶 第三天(0326)
  11. [Head First Python]3. 文件与异常:处理错误
  12. windbg命令详解
  13. Oracle学习之常见问题处理
  14. uva 11134 - Fabled Rooks(问题转换+优先队列)
  15. token的时限多长才合适?
  16. 新概念英语(1-41)Penny&#39;s bag
  17. javascript之DOM编程通过html元素的标签属性找节点
  18. 百度地图失去坐标html
  19. PHP和PHP-FPM 配置文件优化
  20. 关于LED效率,这4点你应该知道

热门文章

  1. Android wifi驱动的移植 realtek 8188
  2. 2.OpenStack-安装消息队列服务
  3. PHP源码加密- php-beast
  4. ES6新特性及用法笔记
  5. zzc种田
  6. SQL注入漏洞原理
  7. ELK之收集日志到mysql数据库
  8. [BZOJ2095]Bridges
  9. [CC-CHANOQ]Chef and odd queries
  10. SQL 增删改查 复习