java判断中文字符串长度的简单实例

网友投稿 310 2023-06-16


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);

}

根据长度截取内容,区分中英文:

/**

KXLCYVs * 截取字符长度,区分中英文

*

* @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();

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:spring利用squertz实现定时任务
下一篇:巧用canvas
相关文章

 发表评论

暂时没有评论,来抢沙发吧~