美文网首页计算机微刊程序员Android知识
Java 判断String的文字的个数(Android text

Java 判断String的文字的个数(Android text

作者: 咖啡机an | 来源:发表于2017-08-21 13:08 被阅读0次

    中文字符与数字,英文字符的的宽度不一致,导致在判断字符串的长度的时候不好判断字符长度(包含中文的),比如Android的textview。

    //数字,英文字符算半个中文字符
    public class Main {
       public static double getLength(String s) {
            double valueLength = 0;
            String chinese = "[\u4e00-\u9fa5]";
            for (int i = 0; i < s.length(); i++) {
                // 获取一个字符
                String temp = s.substring(i, i + 1);
                // 判断是否为中文字符
                if (temp.matches(chinese)) {
                    // 中文字符长度为1
                    valueLength += 1;
                } else {
                    // 其他字符长度为0.5
                    valueLength += 0.5;
                }
            }
            //进位取整
            return Math.ceil(valueLength);
        }
        public static void main(String[] args) {
            String str = "12数据库we";
            System.out.println(getLength(str));//5.0
            System.out.println(str.length());//7
        }
    }
    

    在Android中textview有时要根据字符串来自适应显示,如更改字体的大小等

     if (StringUtils.getLength(courseName) > 6 && StringUtils.getLength(courseName) < 13) {
            tvCourseName.setTextSize(30);
        } else if (StringUtils.getLength(courseName) >= 13) {
            tvCourseName.setTextSize(28);
        }

    相关文章

      网友评论

        本文标题:Java 判断String的文字的个数(Android text

        本文链接:https://www.haomeiwen.com/subject/etpcdxtx.html