Как я уже говорил выше, нужно больше разделителей для токенизации.
StringTokenizer st = new StringTokenizer(input, " ()+-");
Это исходный пример того, что я имею в виду, пробел, скобки, плюс и минус.Добавьте еще символы в строку разделителя для их токенизации.
Вы никогда не увидите, равен ли строковый токен определенному числу, это заблокирует дальнейший прогресс.
Используйте что-то вроде
int newnum = Integer.ParseInt(nextItem);
после того, как вы выполните начальную проверку, чтобы увидеть, конечно ли это целое число.