在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;ichar[]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] ;