java中判断字符串实际长度(中文2个字符,英文1个字符)的方法,包含中英文符号
介绍
数据库中很多字段都会限制长度,为了方便用户使用,在前端界面给出限制长度的提示,看网上很多写的获取字符串长度都没有包含中英文符号的,导致获取到的长度不准确。
Java中判断字符串的编码有两种思路:
1、根据byte的长度判断,英文的字母和标点符号都是一个byte,且值在0-255之间
2、根据中文的Unicode取值范围判断,这个就是把所有的范围都包含,才能判断正确,参考unicode中文范围
下面主要用第一种方式实现
测试代码
/**
* 测试字符串字符长度
*/
public static void main(String[] args) {
String str = "(集2)上药华,西(四川),";
System.out.println("字符串 \"" + str + "\", 字符串长度为:" + str.length()
+ " ,实际长度为:" + getStringLengthByByte(str));
}
/**
* 返回字符串的实际长度
*/
public static int getStringLengthByByte(String value) {
if (StringUtils.isEmpty(value)) {
return 0;
}
int valueLength = 0;
for (int i=0; i < value.length(); i++) {
char temp = value.charAt(i);
if ((temp + "").getBytes().length == 1) {
valueLength += 1;
} else {
valueLength += 2;
}
}
return valueLength;
}
输出结果
字符串 "(集2)上药华,西(四川),", 字符串长度为:14 ,实际长度为:24
文章介绍了在Java中如何准确计算字符串的实际长度,包括中文字符(每个占2个字节)和英文字符(每个占1个字节)以及中英文符号。方法是通过遍历字符串,根据字符转化为字节的长度来判断。提供的测试代码显示了这种方法能正确计算出含有中文和符号的字符串的字节长度。


的方法,包含中英文符号&spm=1001.2101.3001.5002&articleId=128956852&d=1&t=3&u=df1546e9c0864d4dbfb5fc7195f6b8d1)
2万+

被折叠的 条评论
为什么被折叠?



