JAVA实现中英文混合文字友好截取功能
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;
}
}
JAVA实现中英文混合文字友好截取功能的更多相关文章
- JS实现中英文混合文字溢出友好截取功能
在显示字符串的时候,避免字符串过长往往会对字符串进行截取操作,通常会用到js的 substr 或者 substring方法, 以及 字符串的length属性 substr() 方法可在字符串中抽取从 ...
- java 12-4 StringBuffer类的替换、反转、截取功能
1.StringBuffer的替换功能: public StringBuffer replace(int start,int end,String str):从start开始到end用str替换 pu ...
- Java基础知识强化42:StringBuffer类之StringBuffer的截取功能
1. StringBuffer的截取功能: public String subString(int Start): public String subString(int Start, int end ...
- java 实现中英文拼写检查和错误纠正?可我只会写 CRUD 啊!
简单的需求 临近下班,小明忙完了今天的任务,正准备下班回家. 一条消息闪烁了起来. "最近发现公众号的拼写检查功能不错,帮助用户发现错别字,体验不错.给我们系统也做一个." 看着这 ...
- 中英文混合字符串截取java
//截取字符串长度(中文2个字节,半个中文显示一个) public String subTextString(String str,int len){ if(str.length()<len/2 ...
- 用JS来实现于截取中英文混合字符串方法(转载)
网站制作过程中,提示层文字超出,需要JS做字符串截取,但是呢,我们常常会烦恼文字中英文混合如何判断,因为我们知道在JS中 string.length这个值是不考虑中英文的,但是计算机对中英文的识别是 ...
- ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案
好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...
- Lua截取utf-8编码的中英文混合字符串
参考博客:UTF8字符串在lua的截取和字数统计[转载] 需求 按字面个数来截取子字符串 函数(字符串, 开始位置, 截取长度) utf8sub(,) = 好1世界哈 utf8sub(,) = 你好1 ...
- javascript截取字符串(支持中英文混合)
javascript截取字符串(支持中英文混合) <script type="text/javascript"> var sub=function(str,n){ va ...
- PHP获取中英文混合字符串长度及截取
1.字符串长度 PHP获取中英文混合字符串长度的实现代码如下,1中文=1位,2英文=1位,可自行修改 /** * PHP获取字符串中英文混合长度 * @param $str string 字符串 * ...
随机推荐
- linux中用命令导出、导入mysql数据库表
一.导出数据 1.使用场景:在没有数据库可视化工具的情况下备份导出数据库. 命令如下: mysqldump -u用户名 -p 数据库名 > 数据库名.sql mysqldump -u root ...
- Delphi 多进程共享内存的简单封装单元
该单元转自武稀松的博客 稍作修改,使其支持Delphi7 { 共享内存封装. 封装成了MemoryStream的形式. 用法如下: var ms : TShareMemStream; ms := TS ...
- 【Java学习Day08】数据类型、变量及字节
数据类型 强类型语言 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用 弱类型语言 要求变量的使用要符合规定,所有变量都必须先定义后才能使用 Java的两大数据类型 public clas ...
- vuex中的state、mutations 、actions 、getters四大属性如何使用
一.state (提供唯一的公共数据源) 方式1 在div中,$store.state.count 方式2 import {mapState} from 'vuex' computed:{ -mapS ...
- 我与CSP的一点小事
今天是20220311 见了YG老师,感觉被打了鸡血.然后想当初研一的时候,有了这篇LeetCode习题集 现在突然有了一点刺激之后,决定记录下这次的CSP经历,说无论怎么样是the shit,这次就 ...
- mybatis-plus逻辑删除deleted
项目中数据库表设计原则用到了逻辑删除:数据本身没有被删除,只是将deleted字段设置为1 mybatis-plus在逻辑删除方面的设置如下: mybatis-plus: configuration: ...
- linux运维之道学习笔记
linux常用命令 1.find命令 find / "*.log" 查找/目录下.log结尾的档案 find / -mtime -3 查找/目录下三天内被修改的档案 find / ...
- vue+elementUI 在表格中动态增加与删除行
1.定义一个数组,存放表格数据(注:表格要给定一个高度,添加数据超过这个高度会自动出现滚动条) ttable:[], 2.把数组中表格的每一行定义成一个对象,添加到数组中 newconditions: ...
- python获取当前运行函数名
两种方式: #!/usr/bin/env python3#coding:utf-8 import sys, inspectdef test_a(): print('func name: ', sys. ...
- .Net Core WebApi AutoFac用法
1. 安装Autofac.Extensions.DependencyInjection管理包 UI层安装 2.在Program里面配置服务提供工厂 3.在Startup里面添加一个配置容器的方法 使用 ...