Android 如何在dart中组合循环结果

Android 如何在dart中组合循环结果,android,flutter,dart,Android,Flutter,Dart,你好,我有一个简单的for循环,我想把循环结果合并成一个用逗号分隔的字符串 String loc; for(var q=0; q<2; q++){ userData = res; loc = userData[q]['location']; print(loc); //value in first loop is location A value in first second loop is location B i want to

你好,我有一个简单的for循环,我想把循环结果合并成一个用逗号分隔的字符串

   String loc;
   for(var q=0; q<2; q++){
       userData = res;
       loc = userData[q]['location']; 
       print(loc); //value in first loop is location A value in first second loop is location B i want to combine them on 1 string
      }
String-loc;

对于(var q=0;q如果您只想在字符串中追加,那么

void main() {
  String loc="";
  List<String> locs = ["a","d","B","C"];
   for(var q=0; q<2; q++){
       loc = (loc.length>0? (loc+", ") : loc)+ (locs[q] ?? " "); 
      }

print(loc); 
}
void main(){
字符串loc=”“;
清单LOC=[“a”、“d”、“B”、“C”];
对于(var q=0;q0?(loc+“,”):loc)+(locs[q]?”);
}
印刷(loc);
}

如果您只想在字符串中追加,那么

void main() {
  String loc="";
  List<String> locs = ["a","d","B","C"];
   for(var q=0; q<2; q++){
       loc = (loc.length>0? (loc+", ") : loc)+ (locs[q] ?? " "); 
      }

print(loc); 
}
void main(){
字符串loc=”“;
清单LOC=[“a”、“d”、“B”、“C”];
对于(var q=0;q0?(loc+“,”):loc)+(locs[q]?”);
}
印刷(loc);
}

传统的方法是将字符串收集到字符串缓冲区中,然后手动添加逗号:

var buffer=StringBuffer();
字符串分隔符=“;//避免前导逗号。
for(userData中的var数据){
缓冲区..写入(分隔符)…写入(数据[“位置]);
分隔符=“,”;
}
var loc=buffer.toString();
另一种方法是将值收集到列表中,然后使用
join
方法:

var loc=[for(userData中的var数据)数据[“location”]。加入(“,”;
在大多数情况下,这可能更方便,除非您需要对每个元素进行奇特的计算


我已经避免使用
for(;)
循环,因为除了访问用户数据之外,实际上不使用任何索引。那么最好是直接在列表元素上使用
for
/

传统方法是将字符串收集到字符串缓冲区中,然后手动添加逗号:

var buffer=StringBuffer();
字符串分隔符=“;//避免前导逗号。
for(userData中的var数据){
缓冲区..写入(分隔符)…写入(数据[“位置]);
分隔符=“,”;
}
var loc=buffer.toString();
另一种方法是将值收集到列表中,然后使用
join
方法:

var loc=[for(userData中的var数据)数据[“location”]。加入(“,”;
在大多数情况下,这可能更方便,除非您需要对每个元素进行奇特的计算

我避免了使用
for(;)
循环,因为除了访问用户数据之外,实际上不使用索引。那么最好是直接在列表元素上使用
for
/

试试ForEach

 void main() {
 List<String> places = ['New York', 'London', 'Berlin'];
 String linearPlace = '';
 places.forEach((thePlace) {
 linearPlace = linearPlace + thePlace + ", ";
 });
 print(linearPlace);
 //output:   New York, London, Berlin, 
 
 //   In case of Map
 Map<String, String> countryCapitalsMap = {'Austria': 'Vienna', 
 'Armenia': 'Yerevan', 'India': 'Delhi'};
   
 String countryWithCap = '';

   countryCapitalsMap.forEach((key, value) {
   countryWithCap = countryWithCap + key + ': ' + value + "\n";
   });
    print(countryWithCap);
 // output:
 // Austria: Vienna
 // Armenia: Yerevan
 // India: Delhi
void main(){
列出地点=[‘纽约’、‘伦敦’、‘柏林’];
字符串linearPlace='';
地点。forEach((地点){
linearPlace=linearPlace+位置+“,”;
});
印刷品(线性替代品);
//产出:纽约、伦敦、柏林、,
//如果是地图
Map countryCapitalsMap={'Austria':'Vienna',
‘亚美尼亚’:‘埃里温’,‘印度’:‘德里’;
字符串countryWithCap='';
countryCapitalsMap.forEach((键,值){
countryWithCap=countryWithCap+key+':'+value+“\n”;
});
打印(带CAP的国家);
//输出:
//奥地利:维也纳
//亚美尼亚:埃里温
//印度:德里
}试试ForEach

 void main() {
 List<String> places = ['New York', 'London', 'Berlin'];
 String linearPlace = '';
 places.forEach((thePlace) {
 linearPlace = linearPlace + thePlace + ", ";
 });
 print(linearPlace);
 //output:   New York, London, Berlin, 
 
 //   In case of Map
 Map<String, String> countryCapitalsMap = {'Austria': 'Vienna', 
 'Armenia': 'Yerevan', 'India': 'Delhi'};
   
 String countryWithCap = '';

   countryCapitalsMap.forEach((key, value) {
   countryWithCap = countryWithCap + key + ': ' + value + "\n";
   });
    print(countryWithCap);
 // output:
 // Austria: Vienna
 // Armenia: Yerevan
 // India: Delhi
void main(){
列出地点=[‘纽约’、‘伦敦’、‘柏林’];
字符串linearPlace='';
地点。forEach((地点){
linearPlace=linearPlace+位置+“,”;
});
印刷品(线性替代品);
//产出:纽约、伦敦、柏林、,
//如果是地图
Map countryCapitalsMap={'Austria':'Vienna',
‘亚美尼亚’:‘埃里温’,‘印度’:‘德里’;
字符串countryWithCap='';
countryCapitalsMap.forEach((键,值){
countryWithCap=countryWithCap+key+':'+value+“\n”;
});
打印(带CAP的国家);
//输出:
//奥地利:维也纳
//亚美尼亚:埃里温
//印度:德里

}

只需将值附加到loc.loc=loc+userData[q]['location];您想像附加字符串一样进行组合或创建一个新的位置数组?[ERROR:flatter/lib/ui/ui/ui\u dart\u state.cc(157)]未处理的异常:NoSuchMethodError:null调用了方法“+”。use string loc=”“;只需将值附加到loc.loc=loc+userData[q]['location];是否要像追加字符串一样进行组合或创建新的位置数组?[错误:flatter/lib/ui/ui_dart_state.cc(157)]未处理的异常:NoSuchMethodError:方法“+”是在null上调用的。use string loc=”“;[错误:flatter/lib/ui/ui_dart_state.cc(157)]未处理的异常:NoSuchMethodError:方法“+”被调用为null。谢谢,但是如何将分隔符从第一个移动到最后一个在我的例子中,我使用逗号示例,位置A到位置A,编辑谢谢,我现在算出来了,我只使用以下代码loc=(userData[q]['Location']?“-”+,“+loc;您好,我在“位置C”,如何删除最后一个逗号应该是这样的“位置A,位置B”而不是“位置A,位置B”[错误:flatter/lib/ui/ui_dart_state.cc(157)]未处理的异常:NoSuchMethodError:方法“+”在null上被调用。谢谢,但是如何将分隔符从第一个移动到最后一个在我的例子中,我使用逗号示例,位置A到位置A,编辑谢谢,我现在算出来了,我只使用以下代码loc=(userData[q]['Location']?“-”+,“+loc;您好,我有一个小问题”位置C,“如何删除最后一个逗号应该是这样的”位置A,位置B“,而不是“位置A,位置B,”