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

在Java中插入逗号时出现空指针异常,java,Java,我有一个字符数组。我必须在第三个字符后插入“,”。我已经编写了以下代码 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++)

我有一个字符数组。我必须在第三个字符后插入“,”。我已经编写了以下代码

    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();
   }
   }
公共类逗号{
char[]str={'1','2','3','4','5','6','7','8','9'};
char[]buf=null;
int size=str.length;
int c=1;
公开作废插入()
{

对于(int i=0;i
char[]buf=null;
声明为
null
并且您正在访问它
buf[i]=',';

试着声明喜欢

char [] buf=new char[some range];
例如:

 char [] buf=new char[8];

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

您尚未初始化
char buf[]
,您正在尝试为其赋值。您需要如下初始化它

char [] buf=new char[10];

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

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

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

所以缓冲区是空的。所以它在这里给出了NullPointerException

解决方案:

char [] buf = char[10];

用一定的大小初始化数组

 char [] buf = char[size];

因为你还没有初始化你的buf

用这个

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

在java中,当您第一次创建数组时,您必须给出它的大小,之后在中不能更改。 所以你会想碰运气


char[]buf=null;

进入

这样,您将实际为要放置的字符保留空间。

如下初始化

 char [] buf =new char[somevalue] ;

哪一行抛出了NPE?调试这类问题时总是需要这些信息。NullPointerException是在哪里发生的?@AnushaMallajosyula:下面是您的答案,但请理解我们不知道“第16行和第28行”是什么是的。下次你遇到类似问题时,请通过明显的注释在你的问题的哪一行上方向我们展示。@Anushamallajosulla,别忘了标出最佳答案。好的,哦!!!1+首先找到这个。
 char [] buf =new char[somevalue] ;