package com.xxx.utils;

import com.google.common.collect.Lists;

import java.util.List;

/**
* 字符工具类
*/
public final class CharUtil { public CharUtil() {
} /**
* 实际字符串分隔
* @param charStr 需要分隔的字符串
* @param catIndex 分隔长度
* @return List
*/
private static String[] cut(String charStr,int catIndex){
String sb = "";
int charLength = 0;
for (int i = 0;i<charStr.length() ;i++ ){
int asciiCode = charStr.codePointAt(i);
if (asciiCode >=0 && asciiCode<=255){
charLength+=1;
} else{
charLength+=2;
}
if (charLength<=catIndex) {
sb += charStr.charAt(i);
}else{
break;
}
}
return new String[]{charStr.substring(sb.length()),sb};
} /**
* 把字符串按照字符的长度进行分隔
* @param charStr 需要分隔的字符串
* @param catIndex 分隔长度
* @return List
*/
public static List<String> cutString(String charStr, int catIndex){
List<String> result = Lists.newArrayList();
boolean endCond = true;
while (endCond){
String[] forCutChar = cut(charStr, catIndex);
result.add(forCutChar[1]);
if(forCutChar[0].length() > catIndex){
charStr = forCutChar[0];
}else{
endCond = false;
if(StringUtil.isNotBlank(forCutChar[0])){
result.add(forCutChar[0]);
}
}
}
return result;
}
}

最新文章

  1. 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率
  2. python day1 常用模块
  3. 使用docker-hub
  4. 关于hadoop2.4.1伪分布式系统的搭建
  5. 分别取商和余数:divmod(a, b)
  6. HIBERNATE - 符合Java习惯的关系数据库持久化(精华篇)
  7. sql的集合运算
  8. ECMAScript6之Set结构和Map结构
  9. .NET Core 2.0 开源Office组件 NPOI
  10. javaweb中的关于编码问题总结
  11. powerdesign
  12. ThinkPHP5零基础搭建CMS系统(一)
  13. SQL优化 MySQL版 -分析explain SQL执行计划与Extra
  14. C#线程安全使用(一)
  15. Multiple vulnerabilities in DASAN H660RM GPON router firmware
  16. C++ code:for loop designs
  17. Android 音视频深入 一 AudioRecord录音生成pcm转换为wav(附源码下载)
  18. node 慕课笔记
  19. eclipse 中 import sun.misc.BASE64Decoder; 报错
  20. dubbo注册中心zookeeper出现异常 Opening socket connection to server 10.70.42.99/10.70.42.99:2181. Will not attempt to authenticate using SASL (无法定位登录配置)

热门文章

  1. linux中用命令导出、导入mysql数据库表
  2. 将含两列的csv文件生成二维矩阵
  3. wake on lan sender 2.0.8
  4. gorm去重查询 iris框架
  5. Hyperledger fabric 2.2.0 环境搭建
  6. ubuntu 铺满桌面 调整字体 安装firefox中文版
  7. vs2019下 c++中 dll 的新建和引用步骤
  8. 虚拟机重置root用户密码
  9. 【论文写作】Vancouver style
  10. 面试视频知识点整理1-13(mvvm框架)