Сделайте это следующим образом:
if(calculation.charAt(iNumber) >= '0' && calculation.charAt(iNumber) <= '9') {
number[indexNumber] = calculation.charAt(iNumber) - '0';
} else {
number[indexNumber] = calculation.charAt(iNumber);
}
В качестве альтернативы
if(calculation.charAt(iNumber) >= '0' && calculation.charAt(iNumber) <= '9') {
number[indexNumber] = calculation.charAt(iNumber) - 48;
} else {
number[indexNumber] = calculation.charAt(iNumber);
}
Обратите внимание, что значение ASCII от 0
до 9
от 48
до 57
.
Если вы хотите сохранить и отобразить все символы, вы можете изменить свою программу следующим образом:
public class Main {
public static void main(String[] args) {
int i = 0;
String calculation = "5+8";
int lengthCalculation = calculation.length();
int[] number = new int[lengthCalculation];
while (i < lengthCalculation) {
if (calculation.charAt(i) >= '0' && calculation.charAt(i) <= '9') {
number[i] = calculation.charAt(i) - '0';
} else {
number[i] = calculation.charAt(i);
}
i++;
}
for (int q : number) {
if (q >= 0 && q <= 9) {
System.out.println(q);
} else {
System.out.println((char) q);
}
}
}
}
Вывод:
5
+
8