如何在颤动中将 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<String> _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>