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?

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" là 49.

http://www.asciitable.com/

2 Likes

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

1 Like

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

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

a = Character.getNumericValue(number.charAt(0));

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

1 Like

:+1: Chạy tốt ạ :smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?