How can I best check if a string input would be a valid java variable for coding? I\'m sure I\'m not the first one who is willing to do this. But maybe I\'m missing the righ
Just use the built-in isName
method:
public static boolean isName(CharSequence name)
This returns whether or not a name is a syntactically valid qualified name in the latest source version.
See the isName() documentation.
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;
}
EDIT: and, as @Joey indicates, you should also filter out keywords and reserved words.