public static void main(String[] args) {
/**
* 在java中,字符串“abcd”与字符串“ab你好”的长度是一样,都是四个字符。 但对应的字节数不同,一个汉字占两个字节。
* 定义一个方法,按照指定的字节数来取子串。 如:对于“ab你好”,如果取三个字节,那么子串就是ab与“你”字的半个,那么半个就要舍弃。
*/
String str = "na年esfsd根据";
//截取长度
int len = 5;
//存储截取的字符串
String ra="";
for (int i = 0; i <str.length()&&len>0 ; i++) {
char at = str.charAt(i);
//拿到每个字符,判断是否中文;
//执行到最后一次,也就是len等于1时,如果是汉字len就变成了-1,不是汉字就变成0
if(at>='\u4e00'&&at<='\u9fa5'){
len-=2;
}else {
len-=1;
}
ra+=at;
}
//判断如果最后一个是汉字,就执行这个去掉汉字,len==-1表示判断最后一个是否是汉字,
if (len==-1){
ra=ra.substring(0,ra.length()-1);
}
System.out.println(ra);
}
按照指定的字节数来取子串,如:对于“ab你好”,如果取三个字节,那么子串就是ab与“你”字的半个,那么半个就要舍弃。
最新推荐文章于 2022-06-22 22:41:42 发布