flutter如何将字符串转换为数字
在Flutter开发中,如何将字符串类型的数字(比如"123")转换成整型或浮点型数字?我尝试了int.parse()但遇到非数字字符串时会报错,有没有更安全的方法?比如像Dart的tryParse这种不会抛出异常的方式?
2 回复
在Flutter中,使用int.parse()将字符串转为整数,double.parse()转为浮点数。例如:int num = int.parse('123');。注意处理异常,如使用try-catch防止转换失败。
更多关于flutter如何将字符串转换为数字的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中,将字符串转换为数字有以下几种常用方法:
1. 使用 int.parse() 转换为整数
String str = "123";
int number = int.parse(str);
print(number); // 输出:123
2. 使用 double.parse() 转换为浮点数
String str = "123.45";
double number = double.parse(str);
print(number); // 输出:123.45
3. 使用 num.parse() 转换为数字(自动判断类型)
String str1 = "123";
String str2 = "123.45";
num number1 = num.parse(str1); // 返回 int
num number2 = num.parse(str2); // 返回 double
4. 使用 tryParse() 方法(推荐)
避免转换失败抛出异常,返回 null:
// 整数转换
String str1 = "123";
int? number1 = int.tryParse(str1);
print(number1); // 输出:123
// 浮点数转换
String str2 = "abc";
double? number2 = double.tryParse(str2);
print(number2); // 输出:null
// 使用 ?? 提供默认值
int result = int.tryParse(str2) ?? 0;
print(result); // 输出:0
5. 完整示例
void main() {
String intStr = "100";
String doubleStr = "99.99";
String invalidStr = "abc";
// 安全转换
int intValue = int.tryParse(intStr) ?? 0;
double doubleValue = double.tryParse(doubleStr) ?? 0.0;
int invalidValue = int.tryParse(invalidStr) ?? -1;
print(intValue); // 输出:100
print(doubleValue); // 输出:99.99
print(invalidValue); // 输出:-1
}
建议:在生产环境中优先使用 tryParse() 方法,配合空值合并运算符 ?? 提供默认值,避免程序因格式错误而崩溃。

