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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

String str = null;
    /**
     * 生成一个字符串
     */
    public MySplit() {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 1000; i++) {
            sb.append(i);
            sb.append(";");
        }
        str = sb.toString();
    }

    /**
     * 使用split分割
     */
    public void strSplit() {
        for (int i = 0; i < 10; i++) {
            str.split(";");
        }
    }

    /**
     * 使用StringTokenizer类分割
     */
    public void strTokenizer() {
        StringTokenizer st = new StringTokenizer(str, ";");
        for (int i = 0; i < 10; i++) {
            while (st.hasMoreTokens())
                st.nextToken();
            st = new StringTokenizer(str, ";");
        }
    }

    /**
     * 使用indexOf和substring手工编码方式分割
     */
    public void strIndexOf() {
        String tmp = str;
        for (int i = 0; i < 10; i++) {
            while (true) {
                int idx = tmp.indexOf(';');
                if (idx < 0)
                    break;
                tmp = new String(tmp.substring(idx + 1));
            }
            tmp = str;
        }
    }






3种常用的分割方法,按道理讲应该是最下面一种效率最高,但实际测试发现第3种竟然最低,求原因

0 个回复

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