Flutter如何实现string转其他类型

在Flutter开发中,如何将String类型转换为其他基本类型(如int、double、bool等)?例如,从文本输入框获取的String数据需要转为数值类型进行计算,或者将字符串"true"转为bool类型。是否有内置方法或推荐的最佳实践?如果转换失败(如非数字字符串转int),如何处理异常情况?

2 回复

Flutter中可使用int.parse()double.parse()num.parse()将字符串转为数值类型;使用bool.parse()转为布尔值。注意处理异常,如使用try-catchtryParse()方法避免转换失败。

更多关于Flutter如何实现string转其他类型的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中,可以通过以下方法将字符串转换为其他类型:

1. 字符串转整数

String str = "123";
int number = int.parse(str);

2. 字符串转浮点数

String str = "123.45";
double number = double.parse(str);

3. 字符串转布尔值

String str = "true";
bool value = str.toLowerCase() == 'true';

4. 字符串转日期时间

String str = "2024-01-01";
DateTime date = DateTime.parse(str);

5. 安全转换(避免异常)

// 安全转整数
int? safeParseInt(String str) {
  return int.tryParse(str);
}

// 安全转浮点数
double? safeParseDouble(String str) {
  return double.tryParse(str);
}

6. 字符串转枚举

enum Color { red, green, blue }

Color? parseColor(String str) {
  return Color.values.firstWhere(
    (e) => e.toString().split('.').last == str,
    orElse: () => throw Exception('Invalid color'),
  );
}

7. 字符串转列表

String str = "1,2,3,4";
List<String> list = str.split(',');
List<int> numbers = list.map((e) => int.parse(e)).toList();

8. 字符串转Map

String jsonStr = '{"name": "John", "age": 30}';
Map<String, dynamic> map = json.decode(jsonStr);

注意事项:

  • 使用 parse() 方法时,如果字符串格式不正确会抛出异常
  • 建议使用 tryParse() 方法进行安全转换
  • 对于复杂数据结构,可以使用 json.decode() 方法

这些方法覆盖了Flutter中常见的字符串转换需求,根据具体场景选择合适的方法即可。

回到顶部