我正在使用一个 API,该 API 中包含名称,但我只想获取名称的前两个单词,如果单词大于两个,则不应获取。例如,名称是“Om Prakash Sharma”。所以,名称中有三个字母,但我只想从 API 中获取“Om Prakash”。
List<Qari> qarilist = [];
Future getQariList() 异步 {
const url = "https://quranicaudio.com/api/qaris";
final res = await http.get(Uri.parse(url));
jsonDecode(res.body).forEach((element){
if(qarilist.length<20) {
qarilist.add(Qari.fromjson(element));
}
});
qarilist.sort((a,b)=>a.name!.compareTo(b.name!)); // sort according to A B C
return qarilist;
}
这是api代码
你可以试试下面的伪代码
String name= "Om Prakash Sharma"; //Om Prakash Sharma
final splitted = name.split(' '); //[Om, Prakash, Sharma]
final splittedlength =splitted.length;//3
print(splitted);
print(splittedlength);
if(splittedlength<2)
{
print(splitted.join(" "));
print("in less than 2");
}
希望对你有帮助:
void main() {
List<String> qarilist = ["Mishary bin Rashid.","Ahmad Ali.","Saad ibn Said.","Raad Muhammad"];
var filteredList = qarilist.map((e){
var nameList = e.split(" ");
if (nameList.length > 1){
return "${nameList[0]} ${nameList[1]}";
} else {
return e;
}
}).toList();
print(filteredList);
}
输出:
[Mishary bin, Ahmad Ali., Saad ibn, Raad Muhammad]