码迷,mamicode.com
首页 > 编程语言 > 详细

Java中根据字节截取字符串

时间:2017-11-10 10:54:08      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:span   截取字符串   amp   exce   code   nbsp   size   i++   ack   

一、简介                      

  为了统一世界各国的字符集,流行开了Unicode字符集,java也支持Unicode编码,即java中char存的是代码点值,即无论是‘A’还是‘中’都占两个字节。

  代码点值:与Unicode编码表中字符相对应的代码值;

  代码单元:就是java中的一个char,可一个以认为是字符编码的基本单元

二、根据字节截取字符串的代码实现                  

  public String getSubString(String str, int length) throws Exception {

    int i;

    int n;

    byte[] bytes = str.getBytes("Unicode");      //使用Unicode字符集将字符串编码成byte序列

    i = 2;      //bytes的前两个字节是标志位,bytes[0] = -2, bytes[1] = -1, 故从第二位开始

    n = 0;

    for(; i < bytes.length && n < length; i++) {

      if(i % 2 == 1) {

        n++;

      } else {

        if(bytes[i] != 0) {

          n++;

        }

      }

    }

    //去掉半个汉字

    if(i % 2 == 1) {

      if(bytes[i-1] != 0) {

        i = i -1;

      } else {

        i = i + 1;

      }

    }

 

    return new byte(bytes, 0, i, "Unicode");

  }

Java中根据字节截取字符串

标签:span   截取字符串   amp   exce   code   nbsp   size   i++   ack   

原文地址:http://www.cnblogs.com/lmmblogs/p/7813132.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!