//写一个函数,2个参数,1个字符串,1个字节数,返回截取的字符串,要求字符串中的中文不能出现乱码
//如("我 ABC",4) 应该截取为"我 AB",输入("我 ABC 汉 DEF",6)应该输出"我 ABC"而不是"我 ABC+汉的半个"
public class E {
public static String subString(String str,int subBytes)
{
int bytes = 0;//用来存储字符串的总字节数
for(int i=0;i<str.length();i++)
{
if(bytes==subBytes)
{
return str.substring(0,i);
}
char c = str.charAt(i);
if(c<256){
bytes +=i;//英文字符的字节数看作1
}else{
bytes +=2;//中文字符的字节数看作2
if(bytes-subBytes==1){
return str.substring(0,i);
}
}
}
return str;
}
public static void main(String[] args) {
System.out.println(subString("我 ABC 汉 DEF",6));//运行结果是我 ABC 汉 DEF 而不是我 ABC
                System.out.println(subString("我 ABC 汉 DEF",2));//运行结果是我 
                  System.out.println(subString("我 ABC 汉 DEF",2));//运行结果还是我 ABC 汉 DEF 而不是我 AB }