【Java/字符串处理】得到重复多次后的字符串

【需求】

需要一个或一批Java工具函数,作用是将一个字符或是字符串重复多次,如将字符串“abc”重复3次后得到“abcabcabc”

【实现】

    /**
     * 将一个字符重复n次,返回重复后的字符串
     * @param c 字符
     * @param n 次数
     * @return
     */
    public static String repeatChar(char c,int n){
        char[] arr= new char[n];
        Arrays.fill(arr,c);
        return String.valueOf(arr);
    }
    
    /**
     * 将一个字符串重复n次,返回重复后的字符串(代码简洁效率稍低)
     * @param seed 字符串
     * @param n 次数
     * @return
     */
    public static String repeatStr(String seed,int n) {
        return String.join("", Collections.nCopies(n, seed));
    }
    
    /**
     * 将一个字符串重复n次,返回重复后的字符串(效率稍高)
     * @param seed 字符串
     * @param n 次数
     * @return
     */
    public static String repeatStr2(String seed, int n){
        final int seedLen=seed.length();

        final char[] srcArr=seed.toCharArray();
        char[] dstArr=new char[n*seedLen];

        for(int i=0;i<n;i++){
            for(int j=0;j<seedLen;j++){
                dstArr[i*seedLen+j]=srcArr[j];
            }
        }

        return String.valueOf(dstArr);
    }

【执行效果】

CCCCCCCCCC
godgodgodgodgodgodgodgodgodgod
哇哇哇哇哇哇哇哇哇哇

END

posted @ 2019-11-24 20:02  逆火狂飙  阅读(8730)  评论(0)    收藏  举报