public class TestSubString {
public static void main(String[] args) {
String a = "abc你好123";
a = subStr(a,6);
System.out.println(a);
}
public static String subStr(String str ,int end){
int length=0;
char[] ch = str.toCharArray();
String str2 = "";
for(int i =0;i<str.length();i++){
// int num = Character.codePointAt( ch,i);
// int num = Character.codePointAt( str,i);
int num = str.codePointAt(i); //改行代码与上两行代码实现的效果一致,获取当前遍历元素的值。小于等于255是一个字节,超过255是两个字节
if(num>=0&&num<=255){
length++;//字节数加1
}else{
length+=2;//字节数加2
}
if(length<end){ //没有达到截取字节长度继续循环,并将遍历的元素与str字符串连接
str2+=ch[i];
}else if(length==end){ //正好达到截取字节长度,就退出循环,并将遍历的元素与str字符串连接
str2+=ch[i];
break;
}else{ //超过长度,是因为当前遍历的是中文字符元素,不截取半个中文,所以直接退出循环。
break;
}
}
return str2; 返回拼接的新字符串
}
}
字符串按字节截取
猜你喜欢
转载自blog.csdn.net/Angle_Byron/article/details/130971232
今日推荐
周排行