按照字节截取字符串

时间:2023-02-02 22:46:01
public class Test01 {
    public static void main(String[] args) {
        System.out.println(subByByte("sss计算机", 6));
    }
    /**
     * 
     * @param str
     * @param len 截取的字节长度
     * @return String
     */
    public static String subByByte(String str,int len){
        if(str.length()*2<len){
            return str;
        }
        char[] chs=str.toCharArray();
        int endLen=0;
        for(int i=0;i<chs.length;i++){
            if(chs[i]>225){
                endLen=endLen+2;
            }else {
                endLen++;
            }
            if(endLen>=len){
                if(endLen==len){
                    return str.substring(0,i);
                }else {
                    return str.substring(0,i-1);
                }
            }
        }
        return str;
    }
}