[英]Dart list get the longest string
I want to get first longest string?我想获得第一个最长的字符串? How can i do this?我怎样才能做到这一点?
List<String> list = ['hi', 'hello', 'frozen', 'big mistake', 'cool daddy'];
this is the shortest solution, which will return the longest string:这是最短的解决方案,它将返回最长的字符串:
list.reduce((a, b) {
return a.length > b.length ? a : b;
})
another alternative is:另一种选择是:
list.sort((a, b) {
return b.length - a.length;
});
print(list[0]);
Check the below function i have done in my project to get the longest string.检查下面的 function 我在我的项目中完成的以获得最长的字符串。
long_string(arr) {
var longest = arr[0];
for (var i = 1; i < arr.length; i++) {
if (arr[i].length > longest.length) {
longest = arr[i];
}
}
return longest;
}
And you can call the function like below to get the longest string你可以像下面这样调用 function 来获得最长的字符串
var arr = ["Orebro", "Sundsvall", "Hudriksvall", "Goteborgsdsdsds"];
print(long_string(arr));
The solution posted by Sparko Sol could also be used in an extension on List<String>
to make it easier to reuse this method anywhere in the codebase. Sparko Sol 发布的解决方案也可用于List<String>
的扩展中,以便更轻松地在代码库中的任何位置重用此方法。 Such an extension could look something like这样的扩展看起来像
extension Longest on List<String> {
/// Returns the longest element in a [List<String>]
String longest() {
return reduce((a, b) {
return a.length > b.length ? a : b;
});
}
}
Then, to use this extension, you could simply write something like然后,要使用这个扩展,你可以简单地写一些像
String longestString = list.longest();
final longestString = list.fold<String>('',
(previousValue, element) =>
element.length > previousValue.length ? element : previousValue)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.