How to validate if a string would be a valid java variable?

前端 未结 2 1635
别跟我提以往
别跟我提以往 2021-01-11 10:14

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

相关标签:
2条回答
  • 2021-01-11 10:55

    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.

    0 讨论(0)
  • 2021-01-11 11:03
    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.

    0 讨论(0)
提交回复
热议问题