根据给出一字符串"aaaa",写个程序来实现显示出1000个a的字符串"aaaaaa...aaaaaa"(注意要讲究效率)

解决方案 »

  1.   

    效率?楼主是说执行效率?那好办System.out.print(“把你那一千个a写在这,就是你累点”);
      

  2.   

    public class Test {    public static void main(String[] args) {
            String str = "abc";
            System.out.println(getString(str, 5));
            
        }    private static String getString(String str, int repeat) {
            if((str == null) || (str.length() == 0) || (repeat == 1)) {
                return str;
            }
            if(repeat < 1) {
                return "";
            }
            char[] chs = str.toCharArray();
            char[] nchs = new char[chs.length * repeat];
            for(int i = 0; i < nchs.length; i++) {
                nchs[i] = chs[i % chs.length];
            }
            return new String(nchs);
        }
    }
      

  3.   

    先定义一个定长字符串有1000个空字符,然后用replace函数把字母'a'代码空字符串
    但我不知道有没有可定义定长的字符串语句?
      

  4.   


    package test;/**
     * 
     * @author - yy
     * @time   - Dec 10, 2008 2:19:49 PM
     */
    public class Test6 {
      
      public static void main(String[] args) {
        String str = "abcdefghigklmn";
        getString(str, 500000); // 耗时125毫秒  [双核2.0GHz,2G内存]
        getString2(str, 500000);// 耗时62毫秒  
      }
      
      private static String getString(String str, int repeat) {
        long start = System.currentTimeMillis();
        if((str == null) || (str.length() == 0) || (repeat == 1)) {
            return str;
        }
        if(repeat < 1) {
            return "";
        }
        char[] chs = str.toCharArray();
        char[] nchs = new char[chs.length * repeat];
        for(int i = 0; i < nchs.length; i++) {
            nchs[i] = chs[i % chs.length];
        }
        System.out.println(System.currentTimeMillis() - start);
        return new String(nchs);
    }  private static String getString2(String str, int repeat) {
        long start = System.currentTimeMillis();
        if ((str == null) || (str.length() == 0) || (repeat == 1)) {
          return str;
        }
        if (repeat < 1) {
          return "";
        }
        char[] chs = str.toCharArray();
        char[] nchs = new char[chs.length * repeat];
        int pos = 0;
        int chsLength = chs.length;
        for (int i = 0; i < repeat; i++) {
          System.arraycopy(chs, 0, nchs, pos, chsLength); // 这个函数效率高些
          pos+=chsLength;
        }
        System.out.println(System.currentTimeMillis() - start);
        return new String(nchs);
      }  
    }
    // 函数原型
    // public static native void arraycopy();