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 字符串 * ...
随机推荐
- 在QAS里面,建立副本请求
- esp8266 -rtos-sdk-vscode-config
kiteconfig 工作区配置文件:hello_world.code-workspace { "folders": [ { &q ...
- CPU、内存的占用率
要获取不包含百分比符号的内存占用率: #free -t | awk 'NR ==2 {print "Current Memory Utilization is: "$3/$2*10 ...
- Devexpress WPF ChartControl 多Y轴
<Window x:Class="DXApplication4.MainWindow" xmlns="http://schemas.microsoft.com/wi ...
- Win10使用打印机0x0000011b错误 如何处理(没有KB5005565补丁如何解决??)
1.排查问题 win10连接打印机共享错误显示0x0000011b怎么解决?很多用户在更新了windows系统的最新补丁后,突然发现自己打开打印机的时候提示"无法连接到打印机,错误为0x00 ...
- anaconda在sys.path删除~/.local/lib
python -m site python -m site -help USER_SITE='~/anaconda3/envs/test/lib/python3.7/site-packages'
- typeScript中特殊类型定义
// Js八种内置类型, string, number, boolean, undefined, null, object, bigint symbol // ECMAScript内置对象 Array ...
- Es6中模块引入的相关内容
注意:AMD规范和commonJS规范 1.相同点:都是为了模块化. 2.不同点:AMD规范则是非同步加载模块,允许指定回调函数.CommonJS规范加载模块是同步的,也就是说,只有加载完成,才能执行 ...
- 【剑指Offer】【链表】链表中倒数第k个结点
题目:输入一个链表,输出该链表中倒数第k个结点. A1:先从头到尾扫描链表,得到链表的总长度n,然后再扫描一次链表,输出n-k+1处的结点 ===> 测试用例超时 A2:创建两个指针,一个遍历 ...
- shr8.2视图配置注意点