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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 机智的黄图哥 于 2015-4-15 19:09 编辑

代码如下

求大神讲解下思路 为什么要这么写??



public class Test10 {
        public static void main(String[] args) throws UnsupportedEncodingException {

                String text = "HM程序员";

                System.out.println(method(text, 4));// 传递要截取的字符串的和截取后的长度
        }

        private static String method(String str, int len)
                        throws UnsupportedEncodingException {

                String result = null; // 设置一个字符串容器 接收指定好的字符串
                // 判断str是否为空
                if (str != null) {

                        byte[] a = str.getBytes(); // 对字符串进行编码 长度为8
                        System.out.println(a.length);
                        // 判断a的长度是否小于等于len
                        if (a.length <= len) { // 判断长度是否小于要返回的长度 小于直接返回本身
                                result = str;
                        } else if (len > 0) {

                                result = new String(a, 0, len); // 通过String构造对字节数组进行解码

                                int length = result.length(); // 此处接收要指定长度的字符串的长度

                                if (str.charAt(length - 1) != result.charAt(length - 1)) {
                                        if (length < 2) {
                                                result = null;
                                        } else {
                                                System.out.println("length="+length);
                                                result = result.substring(0, length - 1);
                                        }
                                }
                        }
                }
                return result;// 为空返回null;




0 个回复

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