A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 天,殇心 中级黑马   /  2014-6-26 23:27  /  710 人查看  /  0 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
需求:
10、编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表),
例如:从“HM程序员”中截取2个字节是“HM”,截取4个则是“HM程”,截取3个字节也要是"HM"而不要出现半个中文

*/
public class Test10 {
        public static void main(String[] args) {
                // 定义一个字符串
                String str = "MM序M程员";
                // 调用方法
                SubStr(str, 3);

        }

        public static void SubStr(String src, int leng) {
                int number = src.length();
                // 将字符串转换成byte字节数组
                byte bys[] = src.getBytes();
                //判断字符串的长度是否大于截取的长度
                if (leng > number) {
                        leng = number;
                }
                // 判断是否出现了截半
                if (bys[leng] > 0) {
                        String subStrx = new String(bys, 0, leng);
                        System.out.println("SubStr:" + subStrx);
                } else {
                        String subStrx = new String(bys, 0, --leng);
                        System.out.println("SubStr:" + subStrx);
                }
        }

}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马