Có thể ai đó xin vui lòng giải thích cho tôi những gì đang xảy ra ở đây:Chuyển đổi ký tự để nguyên trong Java
char c = '+';
int i = (int)c;
System.out.println("i: " + i + " ch: " + Character.getNumericValue(c));
này in i: 43 ch:-1
. Điều đó có nghĩa là tôi phải dựa vào các chuyển đổi nguyên thủy để chuyển đổi char
thành int
? Vậy làm cách nào tôi có thể chuyển đổi một số Character
thành Integer
?
Chỉnh sửa: Có Tôi biết Character.getNumericValue
trả về -1
nếu đó không phải là giá trị số và điều đó hợp lý với tôi. Câu hỏi đặt ra là: tại sao việc chuyển đổi nguyên thủy trả về 43
?
Edit2:43
là ASCII cho +
, nhưng tôi hy vọng các diễn viên không thành công giống như getNumericValue
đã không thành công. Nếu không, điều đó có nghĩa là có hai cách tương đương ngữ nghĩa để thực hiện cùng một thao tác nhưng với các kết quả khác nhau?
đã bạn mong đợi gì để có được thay vì '43'? –
Tôi không nghĩ rằng 'getNumericValue' làm những gì bạn nghĩ rằng nó làm. Đó là một phương thức tiện ích chuyển đổi các ký tự thành số nguyên (như trong ký tự '5' thành số nguyên 5). Điều đó không giống như một diễn viên (mà chuyển đổi ký tự '5' thành số nguyên 53). – Aurand
Vấn đề là việc truyền không trả lại giá trị số của chữ số. Hai hoạt động đó làm hai việc khác nhau. – SLaks