📜  dart 从字符串中解析布尔值 - Dart (1)

📅  最后修改于: 2023-12-03 15:00:20.290000             🧑  作者: Mango

Dart 从字符串中解析布尔值

在Dart中,我们可以使用 bool 类型来表示布尔值,即 true/false 的值。有时候,我们需要从字符串中解析出布尔值,比如从外部数据源中获取数据。

Dart标准库中提供了一个 bool.parse() 方法,它可以将字符串转换成布尔值。下面是使用示例:

bool b1 = bool.parse('true'); // true
bool b2 = bool.parse('false'); // false

需要注意的是,该方法仅仅支持解析 'true''false' 两个字符串,不区分大小写,其他字符串均会抛出异常。为了避免异常的出现,我们可以使用 try...catch 来捕捉异常。

try {
  bool b3 = bool.parse('not a boolean value');
} catch (e) {
  print('$e'); // FormatException: Invalid value: "not a boolean value"
}

除了 bool.parse() 以外,我们还可以使用 Dart 标准库中的 boolFromString() 方法进行解析。该方法支持解析大多数大小写格式的布尔值字符串,比如 'yes', 'no', 'on', 'off', '1', '0' 等。

bool b4 = const {'y': true, 'n': false}.containsKey('y'); // true
bool b5 = const {'y': true, 'n': false}.containsKey('n'); // false

bool b6 = const {'yes': true, 'no': false}.containsKey('yes'); // true
bool b7 = const {'yes': true, 'no': false}.containsKey('no'); // false

bool b8 = const {'true': true, 'false': false}.containsKey('true'); // true
bool b9 = const {'true': true, 'false': false}.containsKey('false'); // false

需要注意的是,如果传入的字符串不是以上格式的字符串,该方法会返回 null

以上就是从字符串中解析布尔值的方法,希望对你有所帮助。