Я пытаюсь создать произвольно длинное натуральное число, используя стек целых чисел.Я довольно новичок в Java, но вот что у меня есть:
import java.util.Stack;
public class BigNatural { // I didn't choose that name >.>
private Stack< Integer > number;
public BigNatural(String value_in) {
while(value_in.length() > 0) {
char temp_char = value_in.charAt(0);
Integer temp_int = Character.digit(temp_char, 10);
this.number.push(temp_int);
if(value_in.length() > 1) {
value_in = value_in.substring(1); }
else { break; }
}
}
Я получаю NullPointerException
на линии с this.number.push
.Есть ли что-то, что я не делаю с точки зрения правильной инициализации стека?Добавление number = new Stack< Integer >();
позволило запустить мой инициализирующий тест, но я чувствую, что это создает только локальный стек, выходящий за рамки.Справка!
Редактировать: (см. Комментарии ниже)
public void increment () {
Integer temp_int = 0;
if(!this.number.empty()) {
temp_int = this.number.pop();
temp_int++;
if(temp_int == 10) {
this.increment();
this.number.push(0);
} else {
this.number.push(temp_int);
}
} else {
this.number.push(1);
}
}
Еще раз спасибо за любую помощь!