如何最好地检查字符串输入是否是用于编码的有效java变量?我敢肯定,我不是第一个愿意这样做的人.但也许我错过了正确的关键字来找到有用的东西.
最好的可能是RegEx,它检查:
以一封信开头
然后可以包含数字,字母
可以包含一些特殊字符,比如'_'(哪个?)
JB *_*zet 19
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;
}
Run Code Online (Sandbox Code Playgroud)
编辑:并且,如@Joey所示,您还应该过滤掉关键字和保留字.
Den*_*huk 13
只需使用内置isName方法:
public static boolean isName(CharSequence name)
Run Code Online (Sandbox Code Playgroud)
这将返回名称是否是最新源版本中语法上有效的限定名称.
请参阅isName()文档.