在dart中检查字符串是否为数字

scrblnrd3

我需要找出在dart中字符串是否为数字。它需要在dart中的任何有效数字类型上返回true。到目前为止,我的解决方案是

bool isNumeric(String str) {
  try{
    var value = double.parse(str);
  } on FormatException {
    return false;
  } finally {
    return true;
  }
}

有本机的方法吗?如果没有,还有更好的方法吗?

贡特·佐赫鲍尔(GünterZöchbauer)

这可以简化一点

void main(args) {
  print(isNumeric(null));
  print(isNumeric(''));
  print(isNumeric('x'));
  print(isNumeric('123x'));
  print(isNumeric('123'));
  print(isNumeric('+123'));
  print(isNumeric('123.456'));
  print(isNumeric('1,234.567'));
  print(isNumeric('1.234,567'));
  print(isNumeric('-123'));
  print(isNumeric('INFINITY'));
  print(isNumeric(double.INFINITY.toString())); // 'Infinity'
  print(isNumeric(double.NAN.toString()));
  print(isNumeric('0x123'));
}

bool isNumeric(String s) {
  if(s == null) {
    return false;
  }
  return double.parse(s, (e) => null) != null;
}
false   // null  
false   // ''  
false   // 'x'  
false   // '123x'  
true    // '123'  
true    // '+123'
true    // '123.456'  
false   // '1,234.567'  
false   // '1.234,567' (would be a valid number in Austria/Germany/...)
true    // '-123'  
false   // 'INFINITY'  
true    // double.INFINITY.toString()
true    // double.NAN.toString()
false   // '0x123'

从double.parse DartDoc

   * Examples of accepted strings:
   *
   *     "3.14"
   *     "  3.14 \xA0"
   *     "0."
   *     ".0"
   *     "-1.e3"
   *     "1234E+7"
   *     "+.12e-9"
   *     "-NaN"

此版本也接受十六进制数字

bool isNumeric(String s) {
  if(s == null) {
    return false;
  }

  // TODO according to DartDoc num.parse() includes both (double.parse and int.parse)
  return double.parse(s, (e) => null) != null || 
      int.parse(s, onError: (e) => null) != null;
}

print(int.parse('0xab'));

真正

更新

由于{onError(String source)}现在已弃用,您可以使用tryParse

bool isNumeric(String s) {
 if (s == null) {
   return false;
 }
 return double.tryParse(s) != null;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在dart中检查字符串是否为数字

来自分类Dev

Dart:检查字符串中特定符号是否为数字的最快方法是什么?

来自分类Dev

检查字符串是否为Android中的数字

来自分类Dev

Postgres查询以检查字符串是否为数字

来自分类Dev

雪花-检查字符串是否为字母数字?

来自分类Dev

Kotlin:检查字符串是否为数字

来自分类Dev

Postgres查询以检查字符串是否为数字

来自分类Dev

检查字符串是否为字母数字

来自分类Dev

如何检查字符串是否为数字

来自分类Dev

如何检查字符串中的字符是否为数字?

来自分类Dev

如何在C ++中检查字符串中的数据是否为数字?

来自分类Dev

检查字符串中是否包含数字

来自分类Dev

检查字符串是否以括号中的数字开头

来自分类Dev

检查字符串中的数字是否对称(在边缘)

来自分类Dev

检查字符串中是否包含数字

来自分类Dev

检查字符串是否以 php 中的数字结尾

来自分类Dev

如何检查字符串是否是 Python 中的数字?

来自分类Dev

检查字符串在Swift中是否为字母数字

来自分类Dev

检查字符串是否为c中的数字时出现问题

来自分类Dev

如何在Java中检查字符串是否为字母数字

来自分类Dev

检查字符串在R中是否为大写

来自分类Dev

在JavaScript中检查字符串是否为日期

来自分类Dev

在Swift中检查字符串是否为3个字符和3个数字

来自分类Dev

如何检查字符串数组中的所有字符串是否均为数字?

来自分类Dev

检查字符串是否以数字结尾,如果为true,则获取数字

来自分类Dev

检查字符串是否为数字,然后将该数字转换为 int?

来自分类Dev

检查字符串是否为数字,但从检查中排除欧元符号

来自分类Dev

检查字符串是否包含数字或数字-Thymeleaf

来自分类Dev

检查字符串是否包含大于数字的数字

Related 相关文章

  1. 1

    在dart中检查字符串是否为数字

  2. 2

    Dart:检查字符串中特定符号是否为数字的最快方法是什么?

  3. 3

    检查字符串是否为Android中的数字

  4. 4

    Postgres查询以检查字符串是否为数字

  5. 5

    雪花-检查字符串是否为字母数字?

  6. 6

    Kotlin:检查字符串是否为数字

  7. 7

    Postgres查询以检查字符串是否为数字

  8. 8

    检查字符串是否为字母数字

  9. 9

    如何检查字符串是否为数字

  10. 10

    如何检查字符串中的字符是否为数字?

  11. 11

    如何在C ++中检查字符串中的数据是否为数字?

  12. 12

    检查字符串中是否包含数字

  13. 13

    检查字符串是否以括号中的数字开头

  14. 14

    检查字符串中的数字是否对称(在边缘)

  15. 15

    检查字符串中是否包含数字

  16. 16

    检查字符串是否以 php 中的数字结尾

  17. 17

    如何检查字符串是否是 Python 中的数字?

  18. 18

    检查字符串在Swift中是否为字母数字

  19. 19

    检查字符串是否为c中的数字时出现问题

  20. 20

    如何在Java中检查字符串是否为字母数字

  21. 21

    检查字符串在R中是否为大写

  22. 22

    在JavaScript中检查字符串是否为日期

  23. 23

    在Swift中检查字符串是否为3个字符和3个数字

  24. 24

    如何检查字符串数组中的所有字符串是否均为数字?

  25. 25

    检查字符串是否以数字结尾,如果为true,则获取数字

  26. 26

    检查字符串是否为数字,然后将该数字转换为 int?

  27. 27

    检查字符串是否为数字,但从检查中排除欧元符号

  28. 28

    检查字符串是否包含数字或数字-Thymeleaf

  29. 29

    检查字符串是否包含大于数字的数字

热门标签

归档