在此列表中,我要显示包含此特定名称的所有项目。
我的列表项:['US','SG','US']
print(list.contains("US"));
使用.contains()会返回true或false,但不会返回包含该字符串的字符串列表。我只想从列表中提取具有“ US”的项目。在这种情况下,有2个。请帮忙!
答案 0 :(得分:2)
您可以尝试通过以下方式进行操作-
List<String> myList = ['US', 'SG', 'US'];
print(myList.where((item) => item.contains("US")));
您还可以通过以下方式直接在Text
小部件内显示它-
Text(
myList.where((item) => item.contains("US")).join(" "),
//The join function joins the elements of the Iterable into a single string with the separator provided as an argument.
),
希望这会有所帮助!
更新:
要将每个单词分别显示为列表,可以按以下方式在Column
内显示它们-
Column(
children: myList.map((value) {
if(value.contains("US")){
return Text(value,);
} else {
return Container();
//Return an empty Container for non-matching case
}
}).toList(),
)
如果您希望它可以滚动,可以在ListView
内而不是Column
内使用同一东西。
答案 1 :(得分:0)
如果您使用的是“ list.contains”。它将仅显示列表是否存在,如果要打印值,则必须使用:
var fruits = [‘banana’, ‘pineapple’, ‘watermelon’];fruits.forEach((fruit) => print(fruit)); // => banana pineapple watermelon
如果您只想打印香蕉,则可以使用
var fruits = [‘banana’, ‘pineapple’, ‘watermelon’];fruits.(fruit) => print(fruit[0]); // => banana
答案 2 :(得分:0)
像这样吗?
var myList = ['US', 'SG', 'US'];
myList.forEach((w){
if(w == "US")
print(w);
});
显示:
class SO extends StatelessWidget {
var myList = ['US', 'SG', 'US'];
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
mainAxisSize: MainAxisSize.min,
children: myList.where((w) => w == "US").map((w) => Text(w)).toList(),
),
);
}
}
或者对于单行显示使用Text
代替上面提到的Column
小部件
Text(myList.where((w) => w.contains("US")).join(" "))