2013-06-28 1 views
-1

У меня есть массив символов. Мне нужно вставить «,» после третьего символа. Я написал следующий код.Исключительное исключение указателя при вводе запятой в 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++) 
     { 
     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(); 
    } 
    } 

Когда я запустил его, он отображает исключение исключающего указателя. Где я неправ?

+2

Какая линия бросает NPE? Эта информация всегда необходима при отладке этого типа проблемы. –

+0

Где произошло NullPointerException? –

+0

строка 16 и 28 ... –

ответ

6

char [] buf = null; объявлен null и вы обращаетесь к этому buf[i]=',';

попытку объявить как

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

Пример:

char [] buf=new char[8]; 
+0

ну да! 1+ для поиска первого. –

2

Вы использовали buf.length, но ваш ЬиЕ объявляется пустым.

2

Вы не инициализирован char buf[] и вы пытаетесь присвоить значение it.You необходимо инициализировать его, как показано ниже,

char [] buf=new char[10]; 

, а затем использовать его в противном случае он будет бросать NullPointerException.

0

buf - массив размера null. Следовательно, исключение нулевого указателя.

0

Здесь вы указали char [] buf = null; как null, и вы получаете к нему доступ.

Так что буфер является нулевым. Это дает здесь NullPointerException.

Решение:

char [] buf = char[10]; 
0

инициализировать массив с некоторым размером

char [] buf = char[size]; 
0

Поскольку вы не инициализировать YR ЬиЕ

использования этого

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

В Java у вас есть чтобы дать rray size, когда вы его сначала создадите, после чего in не может измениться. Таким образом, вы хотите, чтобы случайно

char [] buf = null;

в

char [] buf = new char[10]; 

Таким образом, вы на самом деле запас места для символов, которые вы хотите разместить.

1

Initialize следующим

char [] buf =new char[somevalue] ;