我使用正则表达式验证提取gps纬度和经度的功能,但目前它是一个字符串,而map_view只接受双重
上一个问题: how to display a regex result in flutter
我尝试使用它来转换为double但不起作用
RegExp regExp = new RegExp( //Here is the regex fonction to extract long, lat
r"maps:google\.com\/maps\?q=(-?[0-9]+.[0-9]+),(-?[0-9]+.[0-9]+)",
);
var match = regExp.firstMatch(input);
group1 = match.group(1); //match groupe seems to be an int
group2 = match.group(2);
var long2 = double.parse('$group1');
assert(long2 is double);
var lat2 = double.parse('$group2');
assert(lat2 is double);
答案 0 :(得分:4)
从
中删除引号 var long2 = double.parse('$group1');
到
var long2 = double.parse($group1);
您也可以使用
var long2 = double.tryParse($group1);
或者也接受没有分数的数字
var long2 = num.tryParse($group1)?.toDouble();
当$group1
中的字符串无法转换为有效的双精度时,不会出现异常。
答案 1 :(得分:2)
为什么不在double.parse(group1)中使用group1