📜  dart 从字符串中获取数字 - Dart (1)

📅  最后修改于: 2023-12-03 15:14:36.419000             🧑  作者: Mango

从字符串中获取数字 - Dart

在 Dart 中,我们可以使用正则表达式或内置方法来从字符串中获取数字。

使用正则表达式

我们可以使用正则表达式来获取字符串中的数字。下面的示例演示了如何从字符串中获取所有整数:

void main() {
  final String text = 'The quick brown fox jumps over 13 lazy dogs.';
  final RegExp regex = RegExp(r'\d+');
  final Iterable matches = regex.allMatches(text);
  final List<int> integers = matches.map((Match match) => int.parse(match.group(0))).toList();
  print(integers); // [13]
}

使用 RegExp 类来创建正则表达式,使用 allMatches 方法来获取字符串中所有的匹配项。然后使用 map 方法将匹配项转换为整数。最后,使用 toList 方法将整数放入列表中。

使用内置方法

Dart 中提供了许多内置方法来从字符串中获取数字。下面是一些常用的方法:

int.parse()

int.parse() 方法将字符串转换为整数。如果字符串中不包含数字,则会引发异常。

void main() {
  final String text = '42';
  final int integer = int.parse(text);
  print(integer); // 42
}
double.parse()

double.parse() 方法将字符串转换为双精度浮点数。如果字符串中不包含数字,则会引发异常。

void main() {
  final String text = '3.14';
  final double number = double.parse(text);
  print(number); // 3.14
}
RegExp.firstMatch()

我们可以使用 RegExp.firstMatch() 方法来获取字符串中的第一个匹配项。下面的示例演示了如何从字符串中获取第一个整数:

void main() {
  final String text = 'The quick brown fox jumps over 13 lazy dogs.';
  final RegExp regex = RegExp(r'\d+');
  final Match match = regex.firstMatch(text);
  final int integer = int.parse(match.group(0));
  print(integer); // 13
}

使用 RegExp 类来创建正则表达式,使用 firstMatch 方法来获取字符串中的第一个匹配项。然后使用 group 方法来获取匹配项的值,最后使用 int.parse() 方法将该值转换为整数。

结论

无论使用正则表达式还是内置方法,我们都可以在 Dart 中轻松地从字符串中获取数字。你可以根据需要选择使用哪种方法。