你看一下这段代码就知道写了。
public static String subStringByByte(String str , int byteLength){
String tempStr = "";
for(int i = 0;i < str.length();i++){
tempStr = str.substring(0,i);
if(tempStr.getBytes().length > byteLength){
tempStr = str.substring(0,i-1);
break;
}else if(tempStr.getBytes().length == byteLength){
tempStr = str.substring(0,i);
break;
}
}
return tempStr;
}
public static void main(String[] args){
String str = "不ABC安DEF";
System.out.println("subStringByByte(str ,4 ) = " + subStringByByte(str,4));
System.out.println("subStringByByte(str ,6 ) = " + subStringByByte(str,6));
}
public static String subStringByByte(String str , int byteLength){
String tempStr = "";
for(int i = 0;i < str.length();i++){
tempStr = str.substring(0,i);
if(tempStr.getBytes().length > byteLength){
tempStr = str.substring(0,i-1);
break;
}else if(tempStr.getBytes().length == byteLength){
tempStr = str.substring(0,i);
break;
}
}
return tempStr;
}
public static void main(String[] args){
String str = "不ABC安DEF";
System.out.println("subStringByByte(str ,4 ) = " + subStringByByte(str,4));
System.out.println("subStringByByte(str ,6 ) = " + subStringByByte(str,6));
}
System.out.println("subStringByByte(str ,1 ) = " + subStringByByte(str,1));
输出为空
String str = "不ABC安DEF";
System.out.println("subStringByByte(str ,2 ) = " + subStringByByte(str,2));
输出为:不感觉应该把ByteLength改成要截取字符串的长度,在程序里再对中文字符做处理
至少楼主的要求是这样