Chcę tylko wiedzieć, czy istnieje lepsze rozwiązanie do parsowania liczby ze znaku w ciągu (zakładając, że wiemy, że znak o indeksie n jest liczbą).
String element = "el5";
String s;
s = ""+element.charAt(2);
int x = Integer.parseInt(s);
//result: x = 5
(nie trzeba dodawać, że to tylko przykład)
'0', '1', '2', ...
in ascii rosną. Tak więc np. „0” w ascii to 48, „1” to 49 itd. Więc jeśli weźmiesz'2' - '0'
, naprawdę dostaniesz50 - 48 = 2
. Zajrzyj do tabeli ASCII, aby lepiej zrozumieć tę zasadę. Również'x'
środki uzyskać wartość ASCII znaku w Javie.- '0'
zadziałało ... Myślałem, że to jakaś głęboka magia w tym, jak Java interpretuje znaki lub cokolwiek ... To naprawdę był mój przypadek, że coś skomplikowałem ...Character.getNumericValue
To chyba najlepsze z punktu widzenia wydajności, ale jest szorstkie:
Działa, jeśli założysz, że twoja postać jest cyfrą i tylko w językach zawsze używających Unicode, takich jak Java ...
źródło
"el५"
którym५
cyfra 5 w Indiach. :)'0'
zwracać wartość całkowitą?Po prostu odejmując przez char „0” (zero) char (cyfry „0” na „9”) można przekształcić w int (0 do 9), np. „5” - „0” daje int 5.
źródło
źródło
Używanie pliku binarnego
AND
z0b1111
:źródło
Odejmowanie wartości ascii „0” = 48 od char
źródło