关键字:
package lzh;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class JavaKeyword {
public static boolean isValidJavaKeyword(String candidate) {
// 将所有关键字放到一个字符数组中
String[] keywords = { "private", "protected", "public", "abstract", // 访问控制
"class", "extends", "final", "implements", "interface", "native", // 类,方法和变量修饰符
"new", "static", "strictfp", "synchronized", "transient", "volatile", "break", "continue", "return",
"do", "while", "if", // 程序控制
"else", "for", "instanceof", "switch", "case", "default ", "try", "catch", "throw", "throws", // 错误处理
"import", "package", // 包相关
"boolean", "byte", "char", "double", "float", "int", // 基本类型
"long", "short", "null", "true", "false", "super", "this", "void", // 变量引用
"goto", "const" // 保留字
};
// 为避免重复,将关键字字符数组转化为set集合
Set<String> keyTable = new HashSet<String>(Arrays.asList(keywords));
// System.out.println(keyTable.size()); //查看总共有多少个关键字
if ((candidate.length() == 0)) {
return false;
}
return keyTable.contains(candidate);
}
public static void main(String[] args) {
// 将待检测的字符串放在一个字符数组中,
String[] candidates = { "", "123", "goto", "goto1", "class", "null" };
// 逐个检测
for (int i = 0; i < candidates.length; i++)
System.out.println(
"检测是否为关分键字isValidJavaKeyword( \"" + candidates[i] + "\"\t) --> " + isValidJavaKeyword(candidates[i]));
}
}
/**
检测是否为关键字isValidJavaKeyword( "" ) --> false
检测是否为关键字isValidJavaKeyword( "123" ) --> false
检测是否为关键字isValidJavaKeyword( "goto" ) --> true
检测是否为关键字isValidJavaKeyword( "goto1" ) --> false
检测是否为关键字isValidJavaKeyword( "class" ) --> true
检测是否为关键字isValidJavaKeyword( "null" ) --> true
*/