public class test {
  public static String[] a=new String[10];
  public static void main(String[] args) {
    String s="12,55,32,78,41";
    a[0] = s.substring(0);
    System.out.println(a[0]);
  }
}
就应该可以了,数组也是对象,public static String[] a只是创建了一个引用数组的句柄,还应该调用数组的构造函数创建对象后才能给数组赋值的

解决方案 »

  1.   

    利用arraylist就可以实现了
    public class test 
    {
      public static ArrayList a = new ArrayList();
      public static void main(String[] args) 
      {
        String s="12,55,32,78,41";
        a.add(s.substring(0));
        for(i=0; i<a.size(); i++)
        {
            System.out.println("Output: " + (String)a.get(i)); 
        }
      }
    }
      

  2.   

    a = new String[s.length()]
      

  3.   

    我知道呀,我用Vector也一样可以呀。但是怎么给一个String[]分配空间,但这个String[]的长度是未知的?
      

  4.   

    如下可解决
      String s="12,55,32,78,41";
      StringTokenizer st= new StringTokenizer(s,",");
      String[] a= newString[st.countTokens()];
      

  5.   

    public class test {
      public static String[] a;
      public static void main(String[] args) {
        String s="12,55,32,78,41";
        a = new String[s.length()];//加上这一句
        a[0] = s.substring(0);
        System.out.println(a[0]);
      }
    }
    这样应该符合你的要求了吧?
      

  6.   

    sun0101(dd):
    只能用一个字形容你的答案:爽!
    唉,我写了这么久程序居然都不知道有现成的API可以调用,每次都是自己写方法解析字符串。
    非常感谢你的解答。
      

  7.   

    希望你能明白一点,java中好像没有真正的类的实例,都是引用!
    public static String[] a;
    这样也无非是说明a是一个指向String数组类型的指针(借用一下C的术语吧)
    所以java中一个类对象的生成都是用new关键字而不是像C/C++一样可以不使用new关键字也可以生成类的实例所以你直接调用a[0]是毫无疑义的,因为当时a没有指向任何东西,所以不存在a[0]这个数据,当然会出错,希望你理解这一点,这才是问题的关键。这样理解的话你就明白可以随时付给a一个用new关键字生成的String[] 类型的实例(也就是一段内存空间),JVM会自动删除原来a指向的内存空间(如果这一段内存空间没有变量引用的话)