返回顶部

收藏

字符串后n位用*号代替各方法效率评测

更多
/**
 * 
 */
package com.comm;

public class Comm
{

    /**
     * 第一种方法,把字符串的后n位用“*”号代替
     * 
     * @param str
     *            要代替的字符串
     * @param n
     *            代替的位数
     * @return
     */

    public static String replaceSubString(String str, int n)
    {
        String sub = "";

        sub = str.substring(0, str.length() - n);
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < n; i++)
        {
            sb = sb.append("*");
        }
        sub += sb.toString();

        return sub;
    }

    /**
     * 第二种方法
     * 
     * @param org
     * @param n
     * @return
     */
    public static String replaceString(String org, int n)
    {
        char[] cs = org.toCharArray();
        int len = org.length();
        for (int i = 0; i < n; i++)
        {
            cs[len - i - 1] = '*';
        }
        return String.valueOf(cs);
    }

    /**
     * 第三种方法
     * 
     * @param org
     * @param n
     * @return
     */
    public static String replaceString3(String org, int n)
    {
        StringBuffer sb = new StringBuffer(org.substring(0, org.length() - n));
        for (int i = 0; i < n; i++)
        {
            sb.append('*');
        }
        return sb.toString();
    }

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        String str = "13560732344ssssssssssssssssssfffffffffff";
        int n = 10;

        int times = 1000000;

        System.out.println("第一种结果:" + replaceSubString(str, n));
        System.out.println("第二种结果:" + replaceString(str, n));
        System.out.println("第三种结果:" + replaceString3(str, n));

        long tm1 = System.currentTimeMillis();

        for (int i = 0; i < times; i++)
        {
            replaceSubString(str, n);
        }

        long tm2 = System.currentTimeMillis();

        for (int i = 0; i < times; i++)
        {
            replaceString(str, n);
        }

        long tm3 = System.currentTimeMillis();

        for (int i = 0; i < times; i++)
        {
            replaceString3(str, n);
        }

        long tm4 = System.currentTimeMillis();

        System.out.println("第一种方法用时:" + (tm2 - tm1));
        System.out.println("第二种方法用时:" + (tm3 - tm2));
        System.out.println("第三种方法用时:" + (tm4 - tm3));
    }

}
//该片段来自于http://outofmemory.cn

标签:java,基础

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. 糖果 发表 2015-08-03 21:33:22 逆向基础(十三) JAVA (四)
  2. Terry Zhang 发表 2014-04-18 05:08:52 [NIO.2] 编写一个文件拷贝应用
  3. Terry Zhang 发表 2014-04-24 08:14:18 [正则] 边界匹配器
  4. Terry Zhang 发表 2014-05-03 06:33:32 [集合框架] List 接口
  5. Terry Zhang 发表 2014-05-13 06:05:01 [集合框架] SortedSet 接口
  6. 逍遥冲 发表 2013-12-30 14:13:10 [引]编译器自举和移植
  7. 糖果 发表 2015-08-03 20:25:16 逆向基础(十三) JAVA (三)
  8. 博主 发表 2013-03-12 14:17:00 Java基础学习之Enum
  9. Terry Zhang 发表 2014-04-18 05:19:53 [NIO.2] 编写一个文件移动应用
  10. Terry Zhang 发表 2014-05-13 06:28:25 [集合框架] SortedMap 接口
  11. 逍遥冲 发表 2014-02-16 15:32:11 Java8新特性Date和Time
  12. root 发表 2015-04-26 02:40:02 Java 基础:认识&理解关键字 native 实战篇

发表评论