程序一直报错,请指出我哪里写错了String[] headName = null;
 for (int i=0;i<data.size ();i++){
        a=((String)data.get (i)).split (" ");
        int count=a.length;
         
        if(i==0){
           for(int m=0;m<count;m++){
                   headName[m]=a[m];
                  System.out.println(headName);
                           }所报错误是headName[m]=a[m]这一行是空指针,我测试了a数组,里面是有内容的,不知道我在哪里写错了,请各位指点一下

解决方案 »

  1.   

    for (int i=0;i<data.size ();i++){
            a=((String)data.get (i)).split (" ");
            int count=a.length;
            headName=new String[count]; 
            if(i==0){
               for(int m=0;m<count;m++){
                       headName[m]=a[m];
                      System.out.println(headName);
                               }最近这种问题很多啊
      

  2.   

    谢谢楼上的帮助,这下程序没有报错了,但是出现了新的问题,我输出headName以后,显示的全是[Ljava.lang.String;@35ce36,这个错误在我输出a时
    就发生过,不知道是为什么,按理说headName应该是由几个字符串组成的数组。请问这是为什么?
      

  3.   

    headName是String的数组
    所以你System.out.println(headName);时实际上输出的是地址值应该是System.out.println(headName[m]);
      

  4.   

    嗯,我也发现这个错误了,可是我将程序改成如下,又发生了错误,请问为什么?
     public void setHeadName (String[] a) {
                    int m;
                     int count=a.length;
                     headName=new String[count]; 
                     for( m=0;m<count;m++)
                           headName[m]=a[m];
                  
            }
            public String[] getHeadName(){
                    return headName;
            }
    我想错误是发生在最后一个语句上的,但是我将怎么在调用get函数时取得每一个headName的值呢?
      

  5.   

    怎么不行呢?完全可以啊public class TestStr {
        String[] headName;
        public void setHeadName (String[] a) {
                    int m;
                     int count=a.length;
                     headName=new String[count]; 
                     for( m=0;m<count;m++)
                           headName[m]=a[m];
                  
            }
            public String[] getHeadName(){
                    return headName;
            }
            public static void main(String[] args){
                TestStr ts=new TestStr();
                String[] s={"hello","world","str1","str2","str3",};
                ts.setHeadName(s);
                String[] d=ts.getHeadName();
                for(int i=0;i<d.length;i++)
                    System.out.println(d[i]);
            }
    }
      

  6.   

    我的问题其实是这样的,我想在另外一个类里调用getheadName 这个方法,取的是headName里的每一个数据,现在奇怪的是我居然无法调用这个函数,不知道为什么?比如,我写TestStr.getheadName并无法找到这个方法。
      

  7.   

    TestStr.getheadName ???你的这个getHeadName的方法又不是静态方法,怎么能用类名调用?TestStr ts=new TestStr();
    String[] d=ts.getHeadName();先要得到这个类的一个对象实例
      

  8.   

    不知道yingge(盼胖) 熟不熟悉xml,实际上我是想将一个文本文件写入xml里不知从何下手,不知你可否指点一下
    文本文件如下:
    WellName X-Coord Y-Coord KB TopDepth BottomDepth Symbol
    34/10-A-10 60491.7 35683.0 56.6 0 2534 Oil
    34/10-A-15 61757.5 30147.1 23.6 0 3133 Gas要写成如下形式的xml:<wellhead>
        <well name="34/10-A-10" X-Coord="60491.7" Y-Coord="35683.0" KB="56.6"    TopDepth="0" BottomDepth= "2534" Symbol="Oil"/>
        <well name="34/10-A-15" X-Coord=" 61757.5" Y-Coord=" 30147.1  "   KB="23.6" TopDepth="0" BottomDepth= " 3133 " Symbol="Gas"/>
    <wellhead/>
      

  9.   

    java好像有一些专门处理xml的包的,不过我没有用过要就你的需求来说,如果用的Linux就简单了,几句shell教本就解决了。
      

  10.   

    郁闷啊郁闷,又出错了,这次是count=a.length输出说啥都是20,我真是奇怪了,怎么可能是那个数嘛。请问这是怎么回事?