题目:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的
字符串。但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC 汉
DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
今天碰到了这么一道题,本来想在网上找,但是发现网上的太复杂,也看不太懂。自己琢磨后,代码如下:
public class SplitString{
public void split(String str,int amount){
char[] arr=new char[str.length()];
str.getChars(0, str.length(), arr, 0);
for(int i=0;i<amount;i++){
//此处可能有些不妥,但是不知道中文编码范围,应换成中文编码范围
if(arr[i]>256){
//当碰到汉字时,应检查amount是否比i大1,是的话便可以输出
//否则退出循环。同时让amount减小1个,因为中午占了两个字节。
if(amount>i+1){
amount--;
}else{
break;
}
}
System.out.print(arr[i]+" ");
}
}
public static void main(String[] args){
SplitString split=new SplitString();
split.split("我,是zhong国ren", 4);
}
}