判断java 包名或类名是否合法
详细代码如下:
package my;
public class TestJavaClassName {
/**
* 对单独的className进行校验
* @param className
* @return
*/
private boolean isValidJavaIdentifier(String className) {
//确定是否允许将指定字符作为 Java 标识符中的首字符。
if (className.length() == 0
|| !Character.isJavaIdentifierStart(className.charAt(0)))
return false;
String name = className.substring(1);
for (int i = 0; i < name.length(); i++)
//确定指定字符是否可以是 Java 标识符中首字符以外的部分。
if (!Character.isJavaIdentifierPart(name.charAt(i)))
return false;
return true;
}
/**
* 对 package name 和 class name 进行校验
* @param fullName
* @return
*/
public boolean isValidJavaFullClassName(String fullName){
if(fullName.equals("")){
return false;
}
boolean flag = true;
try{
if(!fullName.endsWith(".")){
int index = fullName.indexOf(".");
if(index!=-1){
String[] str = fullName.split("\\.");
for(String name : str){
if(name.equals("")){
flag = false;
break;
}else if(!isValidJavaIdentifier(name)){
flag = false;
break;
}
}
}else if(!isValidJavaIdentifier(fullName)){
flag = false;
}
}else {
flag = false;
}
}catch(Exception ex){
flag = false;
ex.printStackTrace();
}
return flag;
}
public static void main(String[] args){
String fullName = "com.sdf.cccc.Test";
TestJavaClassName javaTest = new TestJavaClassName();
if(javaTest.isValidJavaFullClassName(fullName)){
System.out.println(fullName+" 符合JAVA命名规范");
}else{
System.out.println(fullName+" 不符合JAVA命名规范");
}
}
}