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"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?