Tôi có những tuyên bố sau: u65549 là số nhận dạng Java hợp lệ không?
int \u65549 = 9;
System.out.println(\u65549);
Điều này biên dịch hoàn hảo. Và đầu ra
9
Nhưng:
System.out.println(Character.isJavaIdentifierStart(\u65549));
đầu ra
false
tôi đã làm một số nghiên cứu về chủ đề này. Tôi đọc tài liệu và nói:
Phương pháp này không thể xử lý các ký tự bổ sung. Để hỗ trợ tất cả các ký tự Unicode, bao gồm các ký tự bổ sung, hãy sử dụng phương thức
isJavaIdentifierStart(int)
.
Sau đó, tôi đã làm điều này:
int x = \u65549;
System.out.println(Character.isJavaIdentifierStart(x));
Nhưng ngay cả điều này in:
false
Vì vậy, này có ý nghĩa rằng Java là nhầm lẫn trên \u65549
là một định danh?
@ bcsb1001 Bạn đã bỏ tuyên bố 'int \ u65549' trong cả hai đoạn mã và đó là lý do tại sao bạn không thể tạo lại vấn đề. – rhino
Câu trả lời được chấp nhận đã quên đề cập đến ví dụ thứ 3 của bạn. Trên thực tế 'int \ u65549 = 9 (bạn quên đề cập đến điều này phải xuất hiện trên đầu trang); int X = \ u65549; Sop (Character.isJavaIdentifierStart (x)); 'giống như' int A = 9; int X = A; Sop (Character.isJavaIdentifierStart (X)); ', có nghĩa là kết quả tương tự như ví dụ thứ 2' int A = 9; Sop (Character.isJavaIdentifierStart (A)); ' –