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

java 实现新浪微博内容计数器 Java问题通用解决代码的更多相关文章

  1. java统计中英文字数 Java问题通用解决代码

    http://yangchao20020.blog.163.com/blog/static/483822472011111635424751/   这个不适用于新浪微博字数的统计,结果有差别,若需要可 ...

  2. java清除所有微博短链接 Java问题通用解决代码

    java实现微博短链接清除,利用正则,目前只支持微博短链接格式为"http://域名/字母或数字8位以内"的链接格式,现在基本通用 如果链接有多个,返回结果中会有多出的空格,请注意 ...

  3. java计算时间差 Java问题通用解决代码

    java实现计算时间差     正式版:       /**        * 计算时间差,求出两者相隔的时间        *        * @param nowDate        *    ...

  4. java中按字节获得字符串长度的两种方法 Java问题通用解决代码

    jdk本身就自带获取字符串字节长度的api了,但字符串如果包含特殊符号或全半角符号或标点符号获取到的结果会有偏差,最好的证据就是新浪微博的字数统计了 // jdk自带的获取字节长度 //注意getBy ...

  5. java精确除法计算,四舍五入 Java问题通用解决代码

    主要用java.math.BigDecimal工具类实现,想要了解BigDecimal类可以看java api   正式版:        public static Double divide() ...

  6. java检测http请求的ip地址 Java问题通用解决代码

    以后再用到的话,至少能起个参考作用 java实现,struts2的Action中,依赖HttpServletRequest     package net.dookoo.web.action;   i ...

  7. java替换文本中所有的正则符号 Java问题通用解决代码

    开发时遇到一个需求,需要对一段文本中的所有正则符号进行转义,不然使用split分割方法分割文本的话无效,想到用替换来做,全部替换正则符号为转义后的符号   贴java实现代码:   1.测试版     ...

  8. Java除法结果带小数、进一法的实现 Java问题通用解决代码

    http://blog.csdn.net/windone0109/article/details/5355379进一法: 即省略的位上只要大于零都要进一位 :  四舍五入法: 即省略的位上小于五都要舍 ...

  9. java 根据生日计算年龄 Java问题通用解决代码

    根据生日计算年龄可以通过Calendar实现.最简单可以考虑get(Calendar.DAY_OF_YEAR)来简单修正年龄,但是遇到生日在闰年的2月29之后,或者今年是闰年的2月29之后可能出现计算 ...

随机推荐

  1. java应用挂死故障排查

    现象: java开发的web应用无法访问 排查: 1.从resin/log/watchdog-manager.log的日志里可以看出来,jvm的内存满,无法创建新进程 java.lang.OutOfM ...

  2. Codeforces538F A Heap of Heaps(函数式线段树)

    题意:给你一个数组a[n],对于数组每次建立一个完全k叉树,对于每个节点,如果父节点的值比这个节点的值大,那么就是一个违规点,统计出1~n-1完全叉树下的违规点的各自的个数. 一个直觉的思想就是暴力, ...

  3. 牛客小白月赛3 I 排名【结构体排序/较复杂/细节】

    链接:https://www.nowcoder.com/acm/contest/87/I 来源:牛客网 题目描述 Cwbc和XHRlyb都参加了SDOI2018,他们特别关心自己的排名. 我们定义每一 ...

  4. spoj - Distinct Substrings(后缀数组)

    Distinct Substrings 题意 求一个字符串有多少个不同的子串. 分析 又一次体现了后缀数组的强大. 因为对于任意子串,一定是这个字符串的某个后缀的前缀. 我们直接去遍历排好序后的后缀字 ...

  5. 洛谷——P1679 神奇的四次方数

    P1679 神奇的四次方数 题目描述 在你的帮助下,v神终于帮同学找到了最合适的大学,接下来就要通知同学了.在班级里负责联络网的是dm同学,于是v神便找到了dm同学,可dm同学正在忙于研究一道有趣的数 ...

  6. localize by triangle note

    1.当拟合结果不为1时,取和上次相近的作为结果2.python画三角拟合图bug (3.减小三角拟合波动:对激光雷达数据进行滤波等处理)(4.在计算三角起始和结束位置时,添加用距离值过滤) theta ...

  7. 二分图变种之最小路径覆盖、最小点覆盖集【poj3041】【poj2060】

    [pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=54859604 向大(hei)佬(e)势力学(di ...

  8. iOS isa 浅析

    看见一到面试题讲述一下Objective-C中的isa?完全没听说过,打算小研究一下. 参考:http://blog.sina.com.cn/s/blog_7a2ffd5c01010nme.html ...

  9. Android简单的利用MediaRecorder进行录音的实例代码

    MainActivity.java package com.example.soundrecord_demo; import java.io.IOException; import android.m ...

  10. mysql查询一个库中有多少张表

    SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES  WHERE table_schema = 'palm_2_0_ ...