📅  最后修改于: 2023-12-03 15:14:36.419000             🧑  作者: Mango
在 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 中轻松地从字符串中获取数字。你可以根据需要选择使用哪种方法。