`
heidian
  • 浏览: 99100 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类

获取字符串字节长度,截取字节长度

阅读更多
关键字: 字符串长度 
 /*
  * * 计算字符串的字节长度(字母数字计1,汉字及标点计2) *
  */
 public static int byteLength(String string) {
  int count = 0;
  for (int i = 0; i < string.length(); i++) {
   if (Integer.toHexString(string.charAt(i)).length() == 4) {
    count += 2;
   } else {
    count++;
   }
  }
  return count;
 }
}




/**  
 * @author cn  
 * @param s 要截取的字符串  
 * @param length 要截取字符串的长度->是字节一个汉字2个字节  
 * return 返回length长度的字符串(含汉字)  
*/  
   public static String bSubstring(String s, int length) throws Exception   
   {   
  
       byte[] bytes = s.getBytes("Unicode");   
       int n = 0; // 表示当前的字节数   
       int i = 2; // 要截取的字节数,从第3个字节开始   
       for (; i < bytes.length && n < length; i++){   
           // 奇数位置,如3、5、7等,为UCS2编码中两个字节的第二个字节   
           if (i % 2 == 1){   
               n++; // 在UCS2第二个字节时n加1   
           }   
           else{   
               // 当UCS2编码的第一个字节不等于0时,该UCS2字符为汉字,一个汉字算两个字节   
               if (bytes[i] != 0){   
                   n++;   
               }   
           }   
              
       }   
       // 如果i为奇数时,处理成偶数   
       /*if (i % 2 == 1){  
           // 该UCS2字符是汉字时,去掉这个截一半的汉字  
           if (bytes[i - 1] != 0)  
               i = i - 1;  
           // 该UCS2字符是字母或数字,则保留该字符  
           else  
               i = i + 1;  
       }*/  
       //将截一半的汉字要保留   
       if (i % 2 == 1){   
        i = i + 1;   
       }   
       return new String(bytes, 0, i, "Unicode");   
   }  

 

分享到:
评论

相关推荐

    C#字符串截取固定长度的方法

    C#字符串截取固定长度的方法

    超实用c#按字节截取长度(原创)

    1、 当字符串全部为单字节字符时,则可以用SubString方法截取指定长度即可。 2、 当字符串全部为双字节字符时,则只需要用SubString方法截取指定长度的一半 3、 当字符串为单字节双字节混合时,则我们可以用折中这样...

    SQL_Sever数据库常用语句大全.zip

    Len函数获取字符串字节长度(中英数都是1字节) Right右截取字符串函数 SubString中间截取字符串函数 Left左截取字符串函数 stuff指定位置插入字符串、删掉字符串函数 查看数据库信息功能大全 存储过程解析大全 获取...

    C++中可正确获取UTF-8字符长度的函数分享

    现在假设一串输入为UTF8编码,如何能准确的定位到每个UTF8字符的“CharPoint”,而不会错误的分割字符呢? 参考这个页面:http://www.nubaria.com/en/blog/?p=289 可以改造出下面的函数: const unsigned char ...

    C#截取中英文混合指定长度字符串实例

    /// &lt;summary&gt;/// 字符串长度(按字节算)/// &lt;/summary&gt;/// ”str”&gt;&lt;/param&gt;/// &lt;returns&gt;&lt;/returns&gt;static int StrLength(string str){ int len = 0; byte[] b;  for (int i = 0; i &lt; str.Length; i++) { b...

    Java算法之对字符串的各种处理(二)

    核心思路:输入一个字符串和字节数,输出按字节数截取字符串, 其中要保证汉字不能被截半个字节,设计思路就是判断汉字占几个字节,通过string.valueof.getBytes()方法获取字符的字节数,之后遍历判断不要超过指定的...

    java字符串操作大全

    1、length() 字符串的长度  例:char chars[]={'a','b'.'c'};  String s=new String(chars);  int len=s.length(); 2、charAt() 截取一个字符  例:char ch;  ch="abc".charAt(1); 返回'b' 3、getChars...

    标题过长使用javascript按字节截取字符串

    做为一个前端开发人员在网页展示中经常会碰到,标题过长,需要截取字符串,用CSS的实现的话各种兼容问题,各种坑。... 网络上流传一个Javascript简单获取字节长度的方法: 代码如下: String.prototype.Blength

    php 常用的系统函数

    strlen:获取字符串长度,字节长度 substr:字符串截取,获取字符串(按照字节进行截取) strchr:与substr相似,从指定位置截取一直到最后 strrchr(获取文件后缀名):与strchr一样,只是从右边开始查找字符 ...

    JQuery获取文本框中字符长度的代码

    趁我写例子这点时间有两个人回答了 呵呵 刚才试验过了 看下例子吧 JS 方法: 代码如下: [removed] // 得到字符串的真实长度(双字节换算为两个单字节) function getStrActualLen(sChars) { //sChars.replace(/[^\x...

    AppUtils.zip

    17.截取字节数组 18.int转byte数组 19.byte数组转int 20.字节数组逆序 21.异或校验/BCC异或校验 22.将16进制字符串低位字节补零 23.将十进制整数转为十六进制数,并补位 24.十六进制字符串 高低位转换 25.蓝牙传输 ...

    php常用字符串长度函数strlen()与mb_strlen()用法实例分析

    int strlen ( string $string ) 获取给定字符串的[字节]长度 成功则返回字符串$string的长度,如果$string为空,则返回 0。 &lt;?php $str1 = abcdef; //输出6 $str2 = ab cd ; //输出7,注意,开头、结尾、中间...

    PHP函数库,PHP函数大全,PHP函数实例,PHP函数手册,PHP5函数库实例

    截取指定长度字符串 折线图 按照比例改变图片大小(非生成缩略图) 收藏主页 数据验证类 数组转换成XML格式 日期计算 是否为电子邮件格式 柱形统计图 检查是否为一个合法的时间格式 检测URL地址有效性 检测...

    mysql首字母拼音搜索title

    #截取字符串,每次做截取后的字符串存放在该变量中,初始为函数参数in_string值 DECLARE tmp_str VARCHAR(21845) CHARSET gbk DEFAULT '' ; #tmp_str的长度 DECLARE tmp_len SMALLINT DEFAULT 0; #tmp_str的长度 ...

    js和php配合的rsa openssl 加密解密函数

    因为密钥长度影响可加密明文的最大长度,所以按文字截取然后加密并base64编码,就这样将每次加密并base64编码候的字符串连接起来,解密的时候每次取出固定字节数(加密任何长度明文都产生固定长度的密文),进行解密...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    字符类型 char 1~2000字节 固定长度字符串,长度不够的用空格补充 varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) ...

    c# 加密和解密相关代码

    //获取字符串中指定的字符 UnicodeChar = (int)tem_Character; //获取当前字符的Unicode 编码 if (UnicodeChar &gt;= 97 && UnicodeChar ) //对字符进行加密 { UnicodeChar = UnicodeChar + 13; } else if (Unicode...

    delphi 开发经验技巧宝典源码

    0177 截取指定位置的字符串 115 0178 清除字符串中指定的字符 115 0179 如何实现文本的加密与解密 116 0180 提取字符串中指定子字符串后的字符串 117 0181 替换指定的字符串 117 0182 在文本中删除指定的...

Global site tag (gtag.js) - Google Analytics