【Dart 教程系列第 48 篇】在 Dart 中如何判断字符串是否为数字型字符串

这是【Dart 教程系列第 48 篇】,如果觉得有用的话,欢迎关注专栏。

一:问题描述

为什么要判断字符串是否为数字型字符串呢?

之所以记录这个问题,是因为项目中后台判断某一个数值为 null 时,转换为空字符串返回给前端,而前端又直接使用了 double.parse() 方法进行值类型转换,但 double.parse() 方法在对非数字型字符串解析时,会报如下图所示错误

在这里插入图片描述

提示未处理的异常,格式异常,无效的双精度。

所以正常来说,我们在用 double.parse() 方法前,需要先对传入的参数进行是否为数字型字符串的判断,是的话再去调用该方法。

二:解决方案

在 Dart 中,可以使用 double.tryParse() 方法判断字符串是否为数字型字符串,如果返回值等于 null ,则传入的不是数字型字符串,反之则是。

写了一个简单的判断是否为数字型字符串的方法,如下代码所示

  /// 是否为数字型字符串
  bool isNumberStr(String value) {
    
    
    if (value == null) {
    
    
      return false;
    }
    return double.tryParse(value) != null;
  }

返回值为 true 则是数字型字符串,反之不是。

三:示例

首先,列出几个数字型字符串,控制台输出如下图所示

在这里插入图片描述

此外,像 double.nan、double.infinity 转换为字符串后,也属于数字型字符串。

然后,列出几个非数字型字符串,控制台输出如下图所示

在这里插入图片描述

最后一张截图是测试的代码,留到此处做个记录

在这里插入图片描述

功能很简单,但是如果线上没做非数字型字符串的判断就直接使用 double.parse() 方法,那可得小心了。

你的问题得到解决了吗?欢迎在评论区留言。

赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。


结束语

技术是一点一点积累的,大神也不是一天就可以达到的。原地不动就是退步,所以每天进步一点点。

最后,附上一句格言:"好学若饥,谦卑若愚",望共勉。

猜你喜欢

转载自blog.csdn.net/qq_42351033/article/details/129271157