SourceUtils-代码校验工具类

来源:互联网 发布:淘宝怎么搜索冷门类目 编辑:程序博客网 时间:2024/05/22 01:42

校验命名、替换非法字符

java.lang.Character

 

Character.isJavaIdentifierStart(char ch)

 

Character.isJavaIdentifierPart(char ch)

 

/** *  * java 代码校验工具类 * */public class SourceUtils {/** * 判断str是否是合法的java标识 *  * @param str * @return */public static boolean isValidJavaIdentifier(String str) {if(str == null) return false;// 确定是否允许将指定字符作为 Java 标识符中的首字符。if (str.length() == 0|| !Character.isJavaIdentifierStart(str.charAt(0)))return false;String name = str.substring(1);for (int i = 0; i < name.length(); i++)// 确定指定字符是否可以是 Java 标识符中首字符以外的部分。if (!Character.isJavaIdentifierPart(name.charAt(i)))return false;return true;}/** * 判断str是否是合法的java包 *  * @param str * @return */public static boolean isValidJavaPackage(String str){if(str.trim().endsWith(".")) return false;String[] strs = str.split("\\.");for(String i : strs){if(!isValidJavaIdentifier(i))return false;}return true;}/** * 将str中非法的字符替换 * 并返回一个合法的java标识 *  * @param str * @return */public static String replaceIllegalChar(String str){StringBuffer java = new StringBuffer();if(str == null) return "a";// 确定是否允许将指定字符作为 Java 标识符中的首字符。if (str.length() == 0|| !Character.isJavaIdentifierStart(str.charAt(0))){java.append("a").append(str.charAt(0));}else{java.append(str.charAt(0));}String name = str.substring(1);for (int i = 0; i < name.length(); i++){// 确定指定字符是否可以是 Java 标识符中首字符以外的部分。if (!Character.isJavaIdentifierPart(name.charAt(i))){java.append("_");}else{java.append(name.charAt(i));}}return java.toString();}}

 

// 去除空格 name.replaceAll(" ", ""); /*     * 此处的替换和判断均是为了提高代码的健壮程度而添加的  */ name = SourceUtils.replaceIllegalChar(name);

 

 

...

0 0
原创粉丝点击