2013-03-15 36 views
11

Làm cách nào để kiểm tra xem đầu vào chuỗi có phải là biến java hợp lệ để mã hóa hay không? Tôi chắc rằng tôi không phải là người đầu tiên sẵn sàng làm điều này. Nhưng có lẽ tôi đang thiếu từ khóa phù hợp để tìm thứ gì đó hữu ích.Làm cách nào để xác thực xem chuỗi có phải là biến java hợp lệ không?

nhất có lẽ sẽ là một RegEx, trong đó kiểm tra rằng:

  • bắt đầu bằng chữ cái

  • sau đó có thể chứa chữ số, chữ

  • có thể chứa một số ký tự đặc biệt, giống như ' _ '(trong đó?)

  • không được chứa dấu cách khoảng trắng
+1

Tôi tự hỏi tại sao bạn cần ... –

+3

@JanDvorak: Tự động tạo mã (hoặc xác thực)? – NPE

+0

http://stackoverflow.com/questions/11774099/legal-identifiers-in-java –

Trả lời

18

CHỈNH SỬA: và, như @Chỉ cho biết, bạn cũng nên lọc từ khóa và các từ dành riêng.

+6

Bạn đang thiếu từ khóa, 'true',' false' và 'null'. Họ phải không được phép. Nhưng có, nếu không đó là chính xác những gì spec cho thấy ;-) – Joey

+0

Ồ vâng, đó là sự thật. Có rất nhiều từ khóa khác nữa. –

+1

Không phải là nhiều: http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.9 – assylias

6

Chỉ cần sử dụng built-in isName phương pháp:

public static boolean isName(CharSequence name) 

này trả về có hay không một tên là một cái tên có trình độ cú pháp hợp lệ trong phiên bản mã nguồn mới nhất.

Xem tài liệu isName().

Các vấn đề liên quan