写一个方法 String left(String str ,int n) str字符串中可能包含中文,中文是2bytes,实现的功能是
如:“中abc12” n=4 则该方法返回“中ab” “中abc国a” n=6 则返回“中abc”中文是一半时不返回
解法一:
public String left(String str,int n){ String restr="";
int tmp=0;
for(int i=0;i<n;i++){
char c=str.charAt(i);
if(String.valueOf(c).getBytes().length==2){
tmp++;
}else{
}
if(i+tmp>=n){
break;
}
restr+=c;
}
return restr;
}
二:
public static String left(String str,int n){
char[] chArr = str.toCharArray();
int i=0,len = 0;
while(i < chArr.length){
if (chArr[i] > 255)
len += 2;
else
len++;
if(len > n)
break;
i++;
}
return str.substring(0,i);
}