服务器之家

服务器之家 > 正文

Java 按照字节来截取字符串的代码(不会出现半个汉字)

时间:2019-11-01 14:14     来源/作者:java教程网

代码如下:


/*
 *    Copyright 2012-2013 The Haohui Network Corporation
 */
package com.haohui.common.utils;

 

/**
 * <pre>
 * 字符串辅助工具
 * </pre>
 * 
 * @project baidamei
 * @author cevencheng <cevencheng@gmail.com>
 * @create 2012-11-30 下午2:42:56
 */
public class StringTool {

 /**
  *<b>截取指定字节长度的字符串,不能返回半个汉字</b>
  * 例如:
  * 如果网页最多能显示17个汉字,那么 length 则为 34
  * StringTool.getSubString(str, 34);
  * 
  * @param str
  * @param length
  * @return
  */
 public static String getSubString(String str, int length) {
  int count = 0;
  int offset = 0;
  char[] c = str.toCharArray();
  for (int i = 0; i < c.length; i++) {
   if (c[i] > 256) {
    offset = 2;
    count += 2;
   } else {
    offset = 1;
    count++;
   }
   if (count == length) {
    return str.substring(0, i + 1);
   }
   if ((count == length + 1 && offset == 2)) {
    return str.substring(0, i);
   }
  }
  return "";
 }
}

 

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
返回顶部