如何在颤振中将 List<String> 转换为 String

时间:2021-07-18 08:02:37

标签: flutter dart

如何将列表转换为字符串

然后我如何在其他地方使用 _checked 字符串值

  List<String> _checked = [];

2 个答案:

答案 0 :(得分:1)

有很多方法。第一种方法是简单地调用列表中的 <div id="backdrop"></div>

toString

另一种方法是使用 final list = ['a', 'b', 'c']; final str = list.toString(); // str = "[a, b, c]" ,它将使用可选的分隔符将所有字符串连接成一个字符串:

join

还有其他更专业的方法,但它们需要更多地了解您希望输出的样子。

答案 1 :(得分:0)

join 方法用于此目的。数组元素被转换为字符串,然后粘合成一个,在参数 join 中你可以传递一个将在粘合部分之间的部分。

List<String> list = ["a", "b", "c"];
list.join() // 'abc';
list.join('|') // 'a|b|c'; // better for comparisons

其他方式 - 使用类:

import 'package:crypto/crypto.dart';
import 'package:convert/convert.dart';
import 'dart:convert';

class A {
  List<String> a;
  A(List<String> list): a = list; 
  
  @override
  String toString() {
    return a.join('|');
  }
  
  int get hashCode {
    var bytes = utf8.encode(a.toString());
    return md5.convert(bytes); a.toString().length;
    //return a.toString().length; // silly hash
  }
  
  bool operator ==(other) {
    String o = other.toString();
    return (o == a.join('|'));
  }
}

void main() {
  A _checked = A(['1', '2', '3']);
  A _other = A(['1', '2', '3']);
  A _next = A(['12', '3']);
  print(_checked == _other); // true
  print(_checked);           // 1|2|3
  print(_checked == _next);  // false
  print(_next);              // 12|3
}

是的类是矫枉过正的,你可以只使用一个函数:

  String toString(List<String> a) {
    return a.join('|');
  }
  print(toString(_checked) == toString(_other)); // true
  print(toString(_checked));                     // 1|2|3
  print(toString(_checked) == toString(_next));  // false
  print(toString(_next));                        // 12|3