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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 wayonEmes 于 2015-8-13 23:31 编辑

public class Test_10 {
        public static void main(String[] args) throws Exception {
                String s = "HM程序员";
                method(s, 4);
        }

        // 定义方法,截取字符串
        public static void method(String s, int x) throws Exception {
                // 定义变量length,接收输入的字符串的字节长度
                int length = s.getBytes("GBK").length;
                System.out.println(length);
                // 判断字符串是否为空字符串或空格
                if (s.matches(" +") || s.equals("")) {
                        System.out.println("请不要输入空字符串!!");
                        return;
                }
                // 判断输入的截取长度x是否符合规则
                if (x > length || x < 0) {
                        System.out.println("截取长度不正确!!");
                        return s;
                } else if (x <= length && x > s.length()) {
                        return;
                } else {
                        // 获取伪截取后的字符串
                        // 需要做判断,输入的x是否小于字符串长度
                        String str1 = s.length() > x ? s.substring(0, x) : s;
                        // 获取伪截取后字符串的字节长度num
                        int num = str1.getBytes("GBK").length;
                        // 为x重新赋值,进行真截取,也就是字符截取
                        x = 2 * x - num + (num - x) / 2;
                        String str2 = s.substring(0, x);
                        System.out.println("截取" + x + "个字符的字符串是:" + str2);
                        return;
                }
        }
}

0 个回复

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