java 字符长度判断_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();

}

以上这篇java判断中文字符串长度的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持聚米学院。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值