/**
* 题目:
* 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
* 但是要保证汉字不被截半个,如"我ABC"4,应该截为“我AB”,输入“我ABC汉DEF”,6,
* 应该输出为“我ABC”而不是"我ABC+汉的半个"。
*
*
* 解释:
* 此处的编码方式应该是操作系统默认的GB编码,即汉字占2个字节且第一个字节的最高位是1,
* 如果理解为有符号数的话,就是负数;而英文占1个字节,符合ASC2码。
*/
public class SplitString {
private String str;
private int byteNum;
public SplitString(String str,int byteNum){
this.str = str;
this.byteNum = byteNum;
}
public String splitIt(){
String targetString = null;
byte[] bt = this.str.getBytes();
System.out.println("Length of this string is :" + bt.length);
if(bt[byteNum] < 0){
targetString = new String(bt,0,--byteNum);
}else{
targetString = new String(bt,0,byteNum);
}
return targetString;
}
}
public class TestSplitString {
public static void main(String[] arg){
String oldString = "我ABC汉D";
int length = 4;
SplitString testObject = new SplitString(oldString,length);
String resutl = testObject.splitIt();
System.out.print("Split String is :");
System.out.println(resutl);
}
}