java写一个判断字符长度的方法,要求全中文字符长度10个中文字(32个字节) 2、包含英文字符的、全英文字符(24个字节) 3、首位不支持空格
时间: 2024-03-21 12:41:41 浏览: 17
可以使用Java的正则表达式和字符编码来实现判断字符长度的方法,示例代码如下:
```java
public static int getLength(String str) {
int len = 0;
// 匹配中文字符
String regEx = "[\\u4e00-\\u9fa5]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
while (m.find()) {
len += 2; // 中文字符长度为2
}
// 匹配非中文字符
len += str.replaceAll(regEx, " ").getBytes(StandardCharsets.UTF_8).length; // 非中文字符长度为1
// 去除首尾空格
str = str.trim();
// 判断首位是否空格
if (str.startsWith(" ") || str.endsWith(" ")) {
len = -1; // 无效字符串,返回-1
}
return len;
}
```
使用该方法可以判断字符串的长度是否符合要求,例如:
```java
String str1 = "这是一个中文字符串";
int len1 = getLength(str1); // 20
String str2 = "This is an English string";
int len2 = getLength(str2); // 24
String str3 = " 这是一个无效字符串 ";
int len3 = getLength(str3); // -1
```