Вы должны получить исключение ArrayIndexOutOfBounds
, потому что вы увеличиваете k
до тех пор, пока оно не станет равным последнему индексу в массиве stack
и , затем вы попытаетесь получить доступ к stack[k+1]
.
Ваше выражение цикла должно быть
for (int k = 0; k < (stack.length-1); k++)
Причина NullPointerException
не видна напрямую, но я считаю, что вы не инициализировали массив temp
.Скорее всего, потому что вы не знаете его точный размер.
Я бы вместо этого сохранил результат в list StringBuilder:
StringBuilder resultBuilder = new StringBuilder();
for (int k = 0; k < (stack.length-1); k++) {
resultBuilder.append(stack[k]);
if (Character.isLetter(stack[k]) && Character.isLetter(stack[k+1])) {
resultBuilder.append('*');
}
}
resultBuilder.append(stack[stack.length-1]); // don't forget the last element