Hello,World!你好世界!
给出一段文字既有中文又有英文,那么怎么根据中英文的不同去计算字符串的长度呢?其中中文字符算两个长度,英文字符一个长度,可以参考下面的代码:
package com.demo;
/**
* @author 小书包
* @date 2018/11/29 21:58
*/
public class SubStr {
public String subStr(String string, int len) {
//用于计算字符串的中英文字符长度的数量
int length = 0;
for (int i = 0; i < string.length(); i++) {
//如果unicode编码大于255,则证明不是英文,长度加2
length = (int) (string.charAt(i)) > 255 ? length + 2 : length+1;
if (length > len) {
return string.substring(0,i);
}
}
return string;
}
public static void main(String[] args) {
System.out.println(new SubStr().subStr("Hello,World!你好世界!", 4));
System.out.println(new SubStr().subStr("你好世界!", 4));
}
}
结果:
Hell
你好