Saya hanya ingin tahu apakah ada solusi yang lebih baik untuk mem-parsing angka dari karakter dalam string (dengan asumsi kita tahu bahwa karakter pada indeks n adalah angka).
String element = "el5";
String s;
s = ""+element.charAt(2);
int x = Integer.parseInt(s);
//result: x = 5
(Tidak berguna untuk mengatakan bahwa itu hanya sebuah contoh)
'0', '1', '2', ...
di ascii naik. Jadi misal '0' di ascii adalah 48, '1' adalah 49, dll. Jadi, jika Anda mengambil,'2' - '0'
Anda hanya mendapatkan50 - 48 = 2
. Lihatlah tabel ASCII untuk memahami prinsip ini dengan lebih baik. Juga,'x'
berarti mendapatkan nilai ascii dari karakter di Jawa.- '0'
bekerja ... Saya pikir itu adalah sihir yang dalam tentang bagaimana Java menafsirkan karakter atau apa pun ... ini benar-benar kasus saya karena menyulitkan sesuatu ...Character.getNumericValue
Itu mungkin yang terbaik dari sudut pandang kinerja, tapi itu kasar:
Ini berfungsi jika Anda menganggap karakter Anda digit, dan hanya dalam bahasa yang selalu menggunakan Unicode, seperti Java ...
sumber
"el५"
mana५
digit 5 di India. :)'0'
mengembalikan nilai integer?Dengan hanya mengurangi dengan karakter '0' (nol) karakter (dari digit '0' hingga '9') dapat dikonversi menjadi int (0 hingga 9), misalnya, '5' - '0' memberikan int 5.
sumber
sumber
Menggunakan biner
AND
dengan0b1111
:sumber
Mengurangkan nilai ascii dari '0' = 48 dari char
sumber