今天看原来项目的代码,又让我发现了一处很urgly的代码,原来的程序员是这么判断传进去的字符串是否是整型或者浮点型数格式的数,他是这么做的:直接用parseInt或者parseDouble看调用这两个函数是否发生异常,如果发生异常,说明不符合,没有异常,则符合。

不能说这样做不对,但code smell太重,而且这种做法显得很诡异,靠抛异常来检查。。。。
(如果异常是由其它原因引起的呢??)这种编程风格非常不好,不过担心之前程序程序员已经用了多次这种手法,我只好自己另外写了两个函数,并且在他原来的函数里添加一些建议使用我现在写的函数的注释。

比较好的做法应该是用正则表达式判断是否符合整型或者是浮点型数格式。

看代码就知道了:

Java代码  
  1. /**
  2. * 判断number参数是否是整型数表示方式
  3. * @param number
  4. * @return
  5. */
  6. public static boolean isIntegerNumber(String number){
  7. number=number.trim();
  8. String intNumRegex="\\-{0,1}\\d+";//整数的正则表达式
  9. if(number.matches(intNumRegex))
  10. return true;
  11. else
  12. return false;
  13. }
  14. /**
  15. * 判断number参数是否是浮点数表示方式
  16. * @param number
  17. * @return
  18. */
  19. public static boolean isFloatPointNumber(String number){
  20. number=number.trim();
  21. String pointPrefix="(\\-|\\+){0,1}\\d*\\.\\d+";//浮点数的正则表达式-小数点在中间与前面
  22. String pointSuffix="(\\-|\\+){0,1}\\d+\\.";//浮点数的正则表达式-小数点在后面
  23. if(number.matches(pointPrefix)||number.matches(pointSuffix))
  24. return true;
  25. else
  26. return false;
  27. }

http://bmqnc.iteye.com/blog/788253

关于判断字符串参数是否是整型参数或者浮点型参数的方法相关推荐

  1. shell中判断一个参数是否为整型

    shell中判断一个参数是否为整型 判断参数是否为整型 #!/bin/bashfunction IntTest() {for argdo#算术运算符,当参数为整型数字时,执行失败(( $arg )) ...

  2. 26.【C语言】字符串转无符号整型unsignedint、字符串转有符号整型int、无符号整型unsignedint转字符串、有符号整型转字符串(5_task)

    算法思想: 1. 字符串转无符号整型unsignedint 初始化一个字符串str:num用于存放当前转换的整型数,初始化为0.对字符串str中的每个字符进行判断,一旦扫描到当前字符在数字字符的范围之 ...

  3. Java 判断是否为汉字 判断是否为乱码 判断字符串是否为双整型数字 整数 数字...

    /**   * 判断是否为汉字   *    * @param str   * @return   */  public static boolean isGBK(String str) {   ch ...

  4. 云合智网 面试算法题 两个字符串相乘,例如“12345“ * “54321“,字符串不能直接转换为整型

    题目 两个字符串相乘,例如"12345" * "54321",字符串不能直接转换为整型 public class StringMultiplication {p ...

  5. char怎么比较_为什么阿里巴巴Java开发手册中强制要求整型包装类对象值用 equals 方法比较?...

    在阅读<阿里巴巴Java开发手册>时,发现有一条关于整型包装类对象之间值比较的规约,具体内容如下: 这条建议非常值得大家关注, 而且该问题在 Java 面试中十分常见. 还需要思考以下几个 ...

  6. float取小数点后几位_python Integer整型与Float浮点型操作

    今天学习python的Integer整型与Float浮点型操作,并记录学习过程欢迎大家一起交流分享. 首先新建一个python文件命名为py3_integer_float.py,在这个文件中进行字符串 ...

  7. Python数据格式:%s字符串,%d整型,%f浮点型

    格式化符% name="Tom" age=int(input("age")) pt2="%s你的年龄是%d"%(name,age) prin ...

  8. C++中【字符串】与【整型】和【浮点型】转换攻略

    异想之旅:本人原创博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章仅在CSDN.掘金和个人博客(一定是异想之旅域名)发布,除此之外全部是 ...

  9. python中带有小数的字符串如何转化为数字_python中,如何将字符串转换为数字(将数字转换为整型),字符串的10转换为整型的10,10.5转换为10...

    说明: 在实际的应用过程中,有的时候可能会遇到字符串的10,需要将字符串的10转换为数字的10 在此记录下,通过int函数转换的过程. 操作过程: 1.将字符串转换为整型的10 >>> ...

最新文章

  1. int *ptr=(int *)(a+1)问题的探讨
  2. 线性表实现一元多项式操作
  3. python用字典统计出现次数_python 字典(dict)列表(list),统计重复出现字典的数量...
  4. java虚拟机相同吗_Java虚拟机是否真的是与VMWare或Parallels文件相同的虚拟机?
  5. Java操作office文件的选择
  6. GDI+简单现实文字旋转
  7. python如何避免访问对象不存在的属性_Python3基础 setattr 设置对象的属性值,如果属性不存在就创建一个...
  8. Hadoop入门集群环境搭建
  9. 四阶龙格库塔法c语言程序,四阶龙格库塔法C语言(西安交大)
  10. av终结者特征及防治方法
  11. iOS 页面切换控制
  12. 电力系统远动及其规约
  13. Fone Monkey的配置
  14. 分别兼容IE7,IE8,IE9,IE10,超简单一看就会
  15. 为什么王者荣耀总是服务器中断,王者荣耀服务器突然维护怎么回事?7月3日王者荣耀维护原因补偿...
  16. Qt中添加背景图片的方法
  17. docker 可视化管理工具 shipyard 简介
  18. VS2019加QT5.14中Please assign a Qt installation in ‘Qt Project Settings‘.问题的解决
  19. NetApp运维使用手册
  20. CSR8670的DFU功能

热门文章

  1. Tomcat之startup.bat启动闪退解决
  2. tenda路由器的设置
  3. C/C++编程:宏offsetof()
  4. 电子计算机在电法勘探中的应用,地球物理勘探数据处理
  5. 非靜態初始化塊與夠着函數的 執行順序
  6. 达观OCR首创无锚点文字提取算法,攻克行业难点
  7. addEventListener attachment
  8. App Bundles
  9. 百度究竟有没有必要购买PPS?
  10. Dyna求解的工程爆破模拟—钢筋混凝土结构抗爆