code review的时候,发现了如下代码。
/**
* 验证一个字符串是一个长度为10,且内容都是数字。
* */
public static boolean validate(String str) {
if (str == null || str.length() != 10) {
return false;
}
// 纯数字
try {
Long.valueOf(str);
} catch (NumberFormatException ex) {
return false;
}
return true;
}
第一反应是异常这么用,好奇怪。异常不应该这么用的啊,也许是为了图省事吧。
但是还是应该把异常用在异常情况下,而不是这么误用。这个用法和用异常判断文件的结束没有什么太大的区别。
仔细看了看,不仅仅是异常用的比较奇怪,这个方法是有漏洞的。
明明方法接口的约定是判断长度和数字,但是因为是用Long的valueOf方法,通过异常来实现,结果像"-100000000"这样本来不合法的字符串可以通过这个校验了。
重构后代码如下,直白的完成该方法的接口约定。
/**
* 验证一个字符串是一个长度为10,且内容都是数字。
* */
public static boolean validate2(String str) {
if (str == null || str.length() != 10) {
return false;
}
char[] data = new char[str.length()];
str.getChars(0, str.length(), data, 0);
for (int i = 0; i < data.length; i++) {
char c = data[i];
if (c < '0' || c > '9') {
return false;
}
}
return true;
}
分享到:
相关推荐
描述中的“幅值谱重构语音”指的是从MFCC中恢复出幅度谱,然后使用IFFT将其转换回时间序列。 **谱重构**是指根据频率域信息(如幅度谱或功率谱)重建原始信号的过程。在语音处理中,谱重构对于语音识别、语音合成...
在机械故障诊断中,EMD能帮助识别设备的异常振动模式。 "EMDchonggou.m"函数的具体实现可能包括以下步骤: 1. 输入原始信号。 2. 应用EMD算法,逐次提取IMF分量,直到剩余的残余项满足成为单一趋势或恒定值的要求。...
标题中的“用于信号的EMD、EEMD、VMD分解_vmd重构_故障诊断emd_故障诊断_故障重构_VMD信号重构_源码.rar.rar”揭示了该压缩包文件包含的是与信号处理相关的源代码,特别是涉及了三种重要的信号分解方法:Empirical ...
《重构:改善既有代码设计》是一本由Martin Fowler所著的经典IT著作,它详细阐述了在软件开发过程中如何通过重构来提升代码质量、可读性和维护性。重构是一种系统性的方法,旨在不改变软件外在行为的前提下,改进其...
在本文中,我们将深入探讨基于Matlab的压缩感知(Compressive Sensing,简称CS)重构算法的实现。压缩感知是一种理论先进的信号处理方法,它允许我们以远低于奈奎斯特定理所要求的采样率捕获信号,并能恢复原始信号...
配电网重构是电力系统领域中的一个重要研究课题,它涉及到电力系统的稳定运行与经济效率。配电网重构的目标是在满足一系列约束条件下,通过改变开关状态,优化网络结构,以达到提高供电可靠性、降低运营成本、改善...
重构__改善既有代码的设计_高清 绝对清晰
资源名:用于信号的EMD、EEMD、VMD分解_vmd重构_故障诊断emd_故障诊断_故障重构_VMD信号重构 资源类型:matlab项目全套源码 源码介绍:用于信号的分解、降噪和重构,实现故障诊断 源码说明: 全部项目源码都是经过...
牛顿拉普逊法就算配电网重构的潮流程序,结构清晰易懂。
在IT领域,尤其是在信号处理和数据采集系统中,压缩感知(Compressed Sensing,简称CS)是一个非常重要的理论。这个理论突破了传统采样定理的限制,允许以远低于奈奎斯特定理所规定的速率对信号进行采样,然后通过...
在IT行业中,尤其是在医疗影像处理领域,三维重构技术扮演着至关重要的角色。"NewPrjName.rar" 是一个与三维医学图像重构相关的项目文件压缩包,它涉及到的是使用C++编程语言来实现这一复杂的计算过程。这个项目的...
压缩传感重构算法中的子空间追踪算法,用于信号的重构
这个压缩包中的"第13章 MATLAB图像重构实战"可能包含了一系列的MATLAB脚本和函数,用于演示如何使用MATLAB实现fanbeam变换。这些脚本可能包括数据读取、预处理、fanbeam投影、反投影以及图像重构等步骤。在学习和...
经验模态分解(Empirical Mode Decomposition,简称EMD)是一种强大的数据分析技术,尤其...通过对这些资源的深入理解和实践,我们可以更好地掌握EMD技术,并将其应用到实际问题中,实现非平稳信号的有效分析和重构。
在电力系统领域,配电网重构是一项关键的技术,其目的是通过改变配电网络的...总之,配电网重构源码的获取为研究和实践提供了宝贵的工具,通过深入学习和应用,可以提升电力系统的运行效率,为智能电网的发展做出贡献。
这个压缩包中的源码很可能是实现了以上步骤的MATLAB函数或脚本,对于学习和实践互信息和相空间重构的学者来说,这是一个宝贵的资源。用户可以通过阅读和运行这些代码,理解相关算法的原理,并将其应用到自己的项目中...
在本项目中,`wavetansform1.m` 文件很可能是用MATLAB编写的一个脚本,用于执行小波分解和重构的过程。 小波分解是将图像分解成一系列不同频率和位置的小波系数。这个过程通常包括选择一个适当的小波基,如...
北理新源,TBOX项目RTT代码重构项目_BTFS_TBOX_RTT
在OMP中,信号被分解为一系列原子(如基函数或字典元素),每次迭代选择与残差最相关的原子,然后更新信号的近似值,直到达到预设的迭代次数或重构误差阈值。 具体来说,OMP的工作流程如下: 1. 初始化:设定一个空...