栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA:获取(截取)指定最大长度字符串(中文占2位,英文数字符号占1位)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA:获取(截取)指定最大长度字符串(中文占2位,英文数字符号占1位)

        有时我们需要截取字符串前面指定长度的字数,而一般情况JAVA的字符串的中文和英文符号都是按字符个数计数,比如“hello博客123”,这里如果使用String的.lenght方法获取的字符串长度是10位。而经常遇到的场景是按字节长度计算,即中文要算2位,英文数字符号算1位,所以示例的字符串字节长度应为12位。

以下是计算方法

 
    public static String getStrCNmax(String str,int maxlen) {
        int valueLength = 0;
        String chinese = "[u0391-uFFE5]";
        int n=0;
        for (int i = 0; i < str.length(); i++) {
            String temp = str. substring(i, i + 1);
            if (temp.matches(chinese)) {
                if(valueLength+2>maxlen){
                    break;
                }
                valueLength += 2;
            } else {
                if(valueLength+1>maxlen){
                    break;
                }
                valueLength += 1;
            }
            n=i;
        }
        return str.substring(0,n+1);
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1010496.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号