Вопрос-ответ

Java: parse int value from a char

Java: анализ значения int из символа

Я просто хочу знать, есть ли лучшее решение для разбора числа из символа в строке (предполагая, что мы знаем, что символ с индексом n является числом).

String element = "el5";
String s;
s = ""+element.charAt(2);
int x = Integer.parseInt(s);

//result: x = 5

(бесполезно говорить, что это всего лишь пример)

Переведено автоматически
Ответ 1

Попробуйте Character.getNumericValue(char).

String element = "el5";
int x = Character.getNumericValue(element.charAt(2));
System.out.println("x=" + x);

выдает:

x=5

Приятная особенность getNumericValue(char) в том, что она также работает со строками типа "el٥" и "el५" где ٥ и - цифры 5 на восточноарабском и хинди / санскрите соответственно.

Ответ 2

Попробуйте следующее:

str1="2345";
int x=str1.charAt(2)-'0';
//here x=4;

если вычесть значение char '0', значение ASCII не обязательно знать.

Ответ 3

Это, вероятно, лучшее с точки зрения производительности, но это грубо:

String element = "el5";
String s;
int x = element.charAt(2)-'0';

Это работает, если вы предполагаете, что ваш символ является цифрой, и только в языках, всегда использующих Unicode, таких как Java...

Ответ 4

Простым вычитанием значения char '0' (ноль) символ (от цифры '0' до '9') может быть преобразован в int (от 0 до 9), например, '5'-'0' дает значение int 5.

String str = "123";

int a=str.charAt(1)-'0';
2023-10-13 16:57 java