如何在Flutter中从Formfield中获取数组输入?

问题描述

我想在表单字段中输入[1,2,3,4,5]这样的数组,并使用该表单值作为Bubblesort函数对数组进行排序的参数。如何在Flutter中实现呢?

解决方法

我们的字符串:

  final hi = "[1,2,3,4,5]";

用于删除方括号的正则表达式:

  final regex = RegExp(r'([\[\]])');

将我们的字符串替换为空后不带方括号:

  final justNumbers = hi.replaceAll(regex,''); // 1,5

通过逗号分隔的字符串列表:

  List<String> strings = justNumbers.split(',');

现在我们将字符串解析为整数(使用tryParse以便它返回null而不是引发异常):

  List<int> numbers = strings.map((e) => int.tryParse(e)).toList();

最终

void main() {
  final hi = "[1,5]";
  final regex = RegExp(r'([\[\]])');
  final justNumbers = hi.replaceAll(regex,'');
  List<String> strings = justNumbers.split(',');
  List<int> numbers = strings.map((e) => int.tryParse(e)).toList();
  print(numbers);
}
,

保持简单,只需使用内置的json解析器即可。 像这样:

List<int> nbs = List<int>.from(json.decode('[1,4]'));