在Java中插入逗号时出现空指针异常

时间:2013-06-28 11:09:21

标签: java

我有一个字符数组。我必须在第3个字符后插入','。我写了以下代码。

    public class Comma {
    char [] str = {'1','2','3','4','5','6','7','8','9'};
    char [] buf = null;
    int size = str.length;
    int c=1;
    public void insert()
    {
      for(int i=0;i<size+10;i++)
      {
        c++;
        if(c==3)
        {
            buf[i]=',';
            i++;
            c=1;
        }
        buf[i]=str[i];
    }   
    for(int i=0;i<buf.length;i++)
    System.out.println("Final String is"+buf[i]);
   }
   public static void main(String args[])
   {
      Comma c = new Comma();
      c.insert();
   }
   }

当我运行它时,它显示空指针异常。我哪里出错了?

9 个答案:

答案 0 :(得分:6)

char [] buf = null;声明为null,您正在访问buf[i]=',';

尝试声明像

char [] buf=new char[some range];

实施例

 char [] buf=new char[8];

答案 1 :(得分:2)

您使用了buf.length,但您的buf被声明为null。

答案 2 :(得分:2)

您尚未初始化char buf[]并且您正在尝试为其分配值。您需要按以下方式对其进行初始化,

char [] buf=new char[10];

然后使用它,否则会抛出NullPointerException。

答案 3 :(得分:1)

在java中,你必须在第一次创建时给出数组大小,之后就不能改变了。 所以你会想要机会

char [] buf = null;

char [] buf = new char[10];

这样你就可以为你想要放置的字符保留空间。

答案 4 :(得分:1)

初始化如下

 char [] buf =new char[somevalue] ;

答案 5 :(得分:0)

buf是一个大小为null的数组。因此空指针异常。

答案 6 :(得分:0)

在这里,您将char [] buf = null;声明为null并且您正在访问它。

所以缓冲区是null。所以它在这里给出NullPointerException。

解决方案:

char [] buf = char[10];

答案 7 :(得分:0)

使用一些大小初始化数组

 char [] buf = char[size];

答案 8 :(得分:0)

因为你没有初始化你的buf

使用此

char [] buf = new char[str.length];