如何检查给定字符串是否为有效的java标识符?

如何检查给定字符串是否为有效的java标识符?,java,regex,identifier,Java,Regex,Identifier,我在google中没有找到任何算法、正则表达式或库来检查给定字符串是否为有效的Java标识符。我知道java标识符的有效声明规则(或者可能对IDE有所帮助) 有人能支持我如何检查有效的java标识吗? PS:请不要被要求描述我的代码,因为我不太熟悉正则表达式,我知道我可以自己用硬代码来写。我正在寻找更好、更简单的检查方法。我想你应该试试这个 public class IdentifierTest { /** * @param args the command line arguments */

我在google中没有找到任何算法、正则表达式或库来检查给定字符串是否为有效的Java标识符。我知道java标识符的有效声明规则(或者可能对IDE有所帮助)

有人能支持我如何检查有效的java标识吗?


PS:请不要被要求描述我的代码,因为我不太熟悉正则表达式,我知道我可以自己用硬代码来写。我正在寻找更好、更简单的检查方法。

我想你应该试试这个

public class IdentifierTest {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
    for(String arg : args) {
        boolean start = true;
        boolean validIdentifier = true;
        arg.toCharArray() 
        // commenter pointed out my error
        //for(byte b : arg.getBytes()) {
        for(char b : arg.toCharArray()) {
            if(start) {
                validIdentifier = validIdentifier && Character.isJavaIdentifierStart(b);
                start = false;
            } else {
                validIdentifier = validIdentifier && Character.isJavaIdentifierPart(b);
            }
        }
        System.out.println("Identifier \""
        + arg + "\" is "
        + (validIdentifier ? "" : "not ")
        + "valid");
    }
}

}

google上的第一个结果:您可以在此处进行检查:@Patrick OP想检查字符串是否可以用作引用名称,而不必用作类型。@Cataclysm不,这些规则不同,例如,引用不能包含
,而
是类型名称的有效部分,因为它描述了它的包结构。顺便说一句,在验证字符串的结构是否有效成为变量名后,您需要检查它是否无效。java
关键字
呢?