猿问

有没有办法用方法初始化静态字段?

如何使用方法初始化类中的字符串数组?


private static String[] strNrs2 = 

{"Zero","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"};  


private static String[] colo = arr();



private String[] arr(){

     String[] str99 = new String[strNrs2.length];

     for (int i = 0; i<strNrs2.length;i++){

       str99[i]= new StringBuilder(strNrs2[i]).reverse().toString();


    }

    return str99;

    }

我要这个 :


private static String[] strNrs2 = 

{"Zero","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"};

看起来像这样:


 private static String[] strNrs = 

 {"oreZ","enO","owT","eerhT","ruoF","eviF","xiS","neveS","thgiE","eniN"};

但我只想做一次。因为我计划循环使用该数组的方法数百万次。因此它会大大降低我的运行速度。


完整代码:


  public class IntToStr {

  private static String[] strNrs2 = {"Zero","One","Two","Three","Four","Five","Six",

"Seven","Eight","Nine"};  


    public static String intToStr(int nr) {


        StringBuilder str = new StringBuilder("");


        while (nr>0) {

           int pop = nr%10;

            nr= nr/10;

            str.append(new StringBuilder(strNrs2[pop]).reverse().toString());  

//By using this str.append(strNrs[pop]); runtime will increase considerably.


        }

        return str.reverse().toString();

    }


    public static void main(String[] args) {


        for (int i = 0; i<10000000;i++)

            intToStr(5555555);

            System.out.println("Finished");


    }





MMTTMM
浏览 85回答 1
1回答

MMMHUHU

下面的数组初始化:private&nbsp;static&nbsp;String[]&nbsp;colo&nbsp;=&nbsp;arr();不起作用,因为arr()它是一个非静态方法,所以它不能在初始化变量的静态上下文中调用static。您必须创建arr()一个static方法才能使该static数组初始化工作:private&nbsp;static&nbsp;String[]&nbsp;arr()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;... }
随时随地看视频慕课网APP

相关分类

Java
我要回答