java 判断中文字符串长度的简单实例
这里有新鲜出炉的 Java 设计模式, 程序狗速度看过来!
Java 程序设计语言
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 (即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)) 的总称
下面小编就为大家带来一篇 java 判断中文字符串长度的简单实例小编觉得挺不错的, 现在就分享给大家, 也给大家做个参考一起跟随小编过来看看吧
话不多说, 上代码:
- /**
- * 获取字符串的长度, 如果有中文, 则每个中文字符计为 2 位
- * @param value 指定的字符串
- * @return 字符串的长度
- */
- public static int length(String value) {
- int valueLength = 0;
- String chinese = "[\u0391-\uFFE5]";
- /* 获取字段值的长度, 如果含中文字符, 则每个中文字符长度为 2, 否则为 1 */
- for (int i = 0; i < value.length(); i++) {
- /* 获取一个字符 */
- String temp = value.substring(i, i + 1);
- /* 判断是否为中文字符 */
- if (temp.matches(chinese)) {
- /* 中文字符长度为 2 */
- valueLength += 2;
- } else {
- /* 其他字符长度为 1 */
- valueLength += 1;
- }
- }
- return valueLength;
- }
- /**
- * 得到一个字符串的长度, 显示的长度, 一个汉字或日韩文长度为 2, 英文字符长度为 1
- * @param String s 需要得到长度的字符串
- * @return int 得到的字符串长度
- */
- public static int length(String s) {
- if (s == null) return 0;
- char[] c = s.toCharArray();
- int len = 0;
- for (int i = 0; i < c.length; i++) {
- len++;
- if (!isLetter(c[i])) {
- len++;
- }
- }
- return len;
- }
- /**
- * 得到一个字符串的长度, 显示的长度, 一个汉字或日韩文长度为 1, 英文字符长度为 0.5
- * @param String s 需要得到长度的字符串
- * @return int 得到的字符串长度
- */
- public static double getLength(String s) {
- double valueLength = 0;
- String chinese = "[\u4e00-\u9fa5]";
- // 获取字段值的长度, 如果含中文字符, 则每个中文字符长度为 2, 否则为 1
- 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);
}根据长度截取内容, 区分中英文:
- /**
- * 截取字符长度, 区分中英文
- *
- * @param abc 字符串内容
- * @param len 截取长度
- * @return
- */
- public static String subStr(String abc, int len) {
- if (TextUtils.isEmpty(abc) || len <= 0) return "";
- StringBuffer stringBuffer = new StringBuffer();
- int sum = 0;
- char[] chars = abc.toCharArray();
- for (int i = 0; i < chars.length; i++) {
- if (sum >= (len * 3)) {
- break;
- }
- char bt = chars[i];
- if (bt > 64 && bt < 123) {
- stringBuffer.append(String.valueOf(bt));
- sum += 2;
- } else {
- stringBuffer.append(String.valueOf(bt));
- sum += 3;
- }
- }
- return stringBuffer.toString();
- }
来源: http://www.phperz.com/article/18/0210/358711.html