如何validation字符串是否是有效的java变量?
如何最好地检查字符串输入是否是用于编码的有效java变量? 我敢肯定,我不是第一个愿意这样做的人。 但也许我错过了正确的关键字来找到有用的东西。
最好的可能是RegEx,它检查:
-
以一封信开头
-
然后可以包含数字,字母
-
可以包含一些特殊字符,比如’_’(哪个?)
- 可能不包含空格分隔符
public static boolean isValidJavaIdentifier(String s) { if (s.isEmpty()) { return false; } if (!Character.isJavaIdentifierStart(s.charAt(0))) { return false; } for (int i = 1; i < s.length(); i++) { if (!Character.isJavaIdentifierPart(s.charAt(i))) { return false; } } return true; }
编辑:并且,如@Joey所示,您还应该过滤掉关键字和保留字。
只需使用内置的isName
方法:
public static boolean isName(CharSequence name)
这将返回名称是否是最新源版本中语法上有效的限定名称。
请参阅isName()文档。