如何在颤动中将 List<String> 转换为 String [重复]

Posted

技术标签:

【中文标题】如何在颤动中将 List<String> 转换为 String [重复]【英文标题】:How to convert List<String> to String in flutter [duplicate] 【发布时间】:2021-09-26 07:57:16 【问题描述】:

如何将列表转换为字符串

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

  List&lt;String&gt; _checked = [];

【问题讨论】:

我似乎无法理解如何在我的场景中实现这一点 也许您需要对您的问题进行更多解释。你将如何使用String 值? 【参考方案1】:

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

【讨论】:

请用英文写下你的答案。 @Daniil 检查的实例成员无法在初始化程序 var checked=_checked.toString() 中访问 _checked.toString() 你需要吗? 类方法是如此令人难以置信的矫枉过正,它所做的只是调用join。有什么比一开始就打电话给join 更好甚至更好的方法吗? @Abion47,是的,我添加了另一个解决方案作为功能【参考方案2】:

有很多方法。第一种方法是简单地调用列表中的toString

final list = ['a', 'b', 'c'];
final str = list.toString();

// str = "[a, b, c]"

另一种方法是使用join,它将使用可选的分隔符将所有字符串连接成一个字符串:

final list = ['a', 'b', 'c'];
final str = list.join('-');

// str = "a-b-c"

存在其他更专业的方法,但它们需要更多地了解您希望输出的外观。

【讨论】:

被检查的实例成员无法在初始化程序中访问 var checked=_checked.toString(); @RishailSiddiqui 显示你在做什么。 checked 是普通变量吗?是成员变量吗?如果是成员变量,it matters where you're trying to initialize it. @RishailSiddiqui 听起来你正试图在构造函数的初始化列表中做一些事情。您将无法使用这些方法执行此操作,因此请将代码放在构造函数主体中。

以上是关于如何在颤动中将 List<String> 转换为 String [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动中将 List<File> 转换为 List<Asset>

如何在颤动中将 List<Asset> 转换为 List<File>

如何在颤动中将 json 数据转换为 List<widgets>?

如何在颤动中将对象编码为 Json

如何在颤动的Listview中显示字符串列表

如何在颤动中将格式从列表视图更改为网格视图?