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

时间:2023-04-30 01:40:22 


/*
 *    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 "";
 }
}

标签:Java,截取,字符串
0
投稿

猜你喜欢

  • Android监听键盘状态获取键盘高度的实现方法

    2023-12-02 16:44:17
  • C#压缩或解压rar、zip文件方法实例

    2023-10-21 23:00:16
  • java FastJson的简单用法

    2022-07-07 23:51:47
  • Android so的热升级尝试

    2023-08-07 22:41:59
  • Java IO流之字符流的使用详解

    2023-10-18 11:28:08
  • Android开发gradle拉取依赖的加速配置

    2023-05-31 03:16:08
  • WPF自定义控件和样式之自定义按钮(Button)

    2022-04-09 14:39:32
  • aop的实现原理_动力节点Java学院整理

    2022-04-02 16:09:21
  • java实现简单的小超市程序

    2023-05-17 00:04:29
  • Java数据封装树形结构代码实例

    2022-04-12 08:11:44
  • Java转JSON串的几种方式

    2023-08-24 07:38:47
  • java语法糖之jdk迭代的新特性汇总

    2022-07-09 10:05:19
  • C#中LINQ多条件JOIN时为什么可以使用匿名类

    2023-01-24 15:38:21
  • 详解JAVA 线程-线程的状态有哪些?它是如何工作的?

    2023-11-27 03:33:09
  • java关于字符串的常用API

    2022-09-13 22:19:03
  • Java多线程编程小实例模拟停车场系统

    2022-07-07 06:36:29
  • springmvc实现自定义类型转换器示例

    2021-09-29 23:46:53
  • 一文详解Reactor模型与实现示例

    2023-11-13 12:22:09
  • Dubbo Consumer引用服务示例代码详解

    2022-04-26 03:56:44
  • 如何将写好的.py/.java程序变成.exe文件详解

    2022-04-06 09:22:14
  • asp之家 软件编程 m.aspxhome.com