问题:
编程:编写一个截取字符串的函数,输入一个字符串和字节数,输出按字节书截取的字符串,但是要保证汉字不能截半个,,如“我ABC”,4 应该截取“我AB”,输入“我ABC汉DEF”,6 然后输出“我ABC”,而不是半个汗字;
我的解答,期待你的更好意见:
/**
* 逐一的验证子串,得到获得临界的那个的位置 index
*
* @param s
* @param b
* @return
*/
public static String sss(String s, int b) {
int byteNum = b;// 记录要的字节数
String sub = "";// 保存子串
int index = 1;// 用于记录字符串的长度,比如: 我AB 长度是3,而不是字节数4
for (int i = 1; i <= s.toCharArray().length
&& byteNum - sub.getBytes().length > 0; i++) {
sub = s.substring(0, i);
index = i - 1;
}
if (byteNum - sub.getBytes().length == 0) {// 如果正好满足临界条件,就直接返回sub
return sub;
} else {
return s.substring(0, index);// 如果不满足,就减少一个字符(i-1),确保比限定的字节小
}
}