30/09/2018, 17:31

Lỗi khi ép kiểu trong java

Em dùng code này

public class HelloWorld {
    public static void main(String[] args) {
        int i= 0;
        String a = "123";

        i =  (int) a.charAt(0);

        System.out.println(i);
    }

}


Sao lại được kết quả là 49 nhỉ?, số 49 là của cái gì?, và nếu em muốn i có giá trị là 1 (kiểu integer) thì phải ép kiểu như thế nào?

Mai Anh Dũng viết 19:41 ngày 30/09/2018

Là bởi vì a.charAt(0) là tương đương với ký tự "1".

Mà giá trị int của ký tự "1"49.

http://www.asciitable.com/

... viết 19:37 ngày 30/09/2018

Số 1 hình như có mã ascii là 49

Thành Phạm viết 19:35 ngày 30/09/2018

Oạch, thế là ép kiểu này nó lại cho ra mã ascii của kí tự

Đây rồi, ép kiểu cho char phải chơi kiểu này

a = Character.getNumericValue(number.charAt(0));
X viết 19:47 ngày 30/09/2018

thử xem sao i = Integer.parseInt(""+a.charAt(0));

Thành Phạm viết 19:39 ngày 30/09/2018

Chạy tốt ạ

Bài liên quan
0