public class MySplit {
---->
static class MySplit {

解决方案 »

  1.   

    你的程序是这样的:
    MySplit类是A类的一个内部类,而main方法是A类的。静态方法是内是不能使用外部非静态变量的,所以会报这样的错误。
      

  2.   

    static成员不能调用非static函数
      

  3.   

    package split;class A{        static class MySplit {
                      String st;
                      public MySplit(String st) {
                        this.st=st.trim();                 }
                      int [] mySplit(String regex,int limit){
                        int sti[];
                        String s[]=st.split(regex,limit);                    if(s.length!=0){
                          sti = new int[s.length];
                          for (int i = 0; i < s.length; i++) {
                            sti[i] = Integer.parseInt(s[i].trim());
                          }
                        }else{
                          //首值为-1时,字符串为空
                          sti=new int[1];
                          sti[0]=-1;
                        }
                        return sti;
                     }
                    }        public static void main(String args[]){
                    MySplit ms = new MySplit("100,123,126,189,1,10");
                    for(int i=0;i<ms.mySplit(",",5).length;i++){
                        System.out.println(ms.mySplit(",",5)[i]);
                     }
            }}
      

  4.   

    谢谢,
    如果不改成static 还有没有其它的办法呢?就像其它的类那样,不声明成静态的。
      

  5.   

    MySplit 只能通过实例来调用
      

  6.   

    MySplit ms=new MySplit("100,123,126,189,1,10");改成A a=new A();
    A.MySplit ms=a.new MySplit("100,123,126,189,1,10");