`
uule
  • 浏览: 6352573 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

SourceUtils-代码校验工具类

 
阅读更多

校验命名、替换非法字符

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);

 

 

...

分享到:
评论

相关推荐

    CRC-CCITT校验工具

    16位的自制 CRC-CCITT校验工具

    javascript实例应用---密码校验类.rar

    javascript实例应用---密码校验类.rarjavascript实例应用---密码校验类.rarjavascript实例应用---密码校验类.rarjavascript实例应用---密码校验类.rar

    mtd-utils-1.0.0.tar.gz

    mtd-utils是一个用于管理和维护这类设备的开源工具集,它包含了多种实用程序,能够帮助开发者对MTD设备进行读写、擦除、分区等操作。本文将详细介绍mtd-utils-1.0.0的源码及其使用。 mtd-utils-1.0.0.tar.gz是一个...

    Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar

    Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-...

    CRC-16校验工具

    在MODBUS RTU中,数据帧包含起始标识符、功能代码、数据域和CRC校验码。CRC校验码在数据帧尾部,用于接收端验证接收到的数据是否完整无误。如果CRC校验失败,接收端将拒绝该帧数据,从而提高了系统的可靠性。 描述...

    Modbus-CRC校验工具,超级使用!

    Modbus-CRC校验工具,超级使用!

    小工具-CRC校验计算工具V1.00

    小工具--CRC校验计算工具V1.00适合搬砖工哈哈哈哈QT5.9.0开发,后面再来增加东西,脑壳痛

    mtd-utils-arm

    《mtd-utils-arm:嵌入式系统的存储管理工具详解》 在嵌入式系统领域,MTD(Memory Technology Device)是Linux内核中用于管理非易失性存储设备的子系统,如闪存、EEPROM等。而mtd-utils则是针对MTD子系统的一套...

    Java校验参数工具类

    这是自己开发的一个参数校验的工具类,可用于对实例的属性进行非空校验。包括全部校验和任一校验两种校验方式。 举例:CheckParamsUtils.checkParamsAll(requestBean, "name", "age","gender");

    mtd-utils-1.4.5

    《mtd-utils-1.4.5:OpenWrt构建中的关键工具》 在嵌入式系统和物联网(IoT)领域,OpenWrt是一个广泛使用的开源固件项目,它为路由器和其他网络设备提供了强大的Linux操作系统。在OpenWrt的构建过程中,一个不可或缺...

    JsonView---Json 校验工具

    JsonView是一款专为开发者设计的Json数据校验和可视化工具,它可以帮助用户快速验证Json字符串的语法正确性,并以清晰的树形结构展示Json数据,便于理解和调试。Json(JavaScript Object Notation)是一种轻量级的...

    CRC-32和CRC-32/MPEG-2校验源码-Labview版本

    CRC-32和CRC-32/MPEG-2的校验方法实现源码-Labview版本(2015),提供2种CRC-32的labview方法,提供CRC-32/MPEG-2校验的Labview版本(2015)方法和MATLAB function函数,可以在simunlink嵌入式function调用。

    CRC-12校验JAVA代码

    CRC 12校验JAVA版 public class CRCtext { public static void main String[] args {  CRC } }

    Java校验身份证号码工具类 ---运行几年了,很靠谱。包含15位身份证校验

    Java校验身份证号码工具类 ---运行几年了,很靠谱。包含15位身份证校验Java校验身份证号码工具类 ---运行几年了,很靠谱。包含15位身份证校验

    Python+PySide6开发Excel数据校验工具源代码.zip

    本文实现了一款批量数据校验工具,可以完成:身份证校验、座机电话校验、手机号码校验、日期时间校验、邮箱校验、IP地址校验、邮编格式校验、MAC地址校验、非空校验、数字校验、域名校验、URL地址校验、统一社会信用...

    CRC-8校验方法 doc

    总的来说,CRC-8校验码是一种强大的工具,它可以有效地检测数据传输过程中的错误,提高数据通信的可靠性。在设计和实现数据通信协议时,理解并正确使用CRC-8算法至关重要,特别是在低功耗、资源有限的设备如DS18B20...

    hutool 工具类

    编码工具-16进制工具 编码工具-转义工具 编码工具-Hash工具 编码工具-URL工具 编码工具-Base32-64工具 编码工具-Unicode工具 ...常用类辅助工具-转换工具 ...常用类辅助工具-日期工具 ...其他-校验工具 其他-身份证工具

    CRC-CCITT-16校验

    在实际应用中,`CCITT`文件可能包含了一些示例或实现CRC16-CCITT校验的代码片段,例如C语言或Python的函数。这些代码通常会包括CRC寄存器的初始化、位运算、移位和检查位的逻辑,以及如何将校验码添加到数据中或验证...

    canutils-4.0.6

    《CAN总线工具canutils-4.0.6详解》 在嵌入式系统和工业自动化领域,控制器局域网络(Controller Area Network,简称CAN)是一种广泛应用的通信协议,尤其在汽车电子、工业设备和自动化系统中占据着重要地位。CAN...

Global site tag (gtag.js) - Google Analytics