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() 方法,配合空值合并运算符 ?? 提供默认值,避免程序因格式错误而崩溃。

回到顶部