所以,我有一个类似的日期列表:
var json SomeJsonStruct
if c.BindJSON(&json) == nil {
//...
}
列表继续包含100个日期,我想检索列表中存在的所有年份。 (得到这样的结果)
List<String> dates = ["2012-05-16", "2012-05-18", "2012-06-19", "2013-01-18", "2013-01-10", "2013-08-05", "2010-07-10"...]
答案 0 :(得分:3)
使用子字符串将每个项目的前4个字符分开。它将为您留下年份
for (String s : dates) {
String year = s.subString(0,5);
years.add(year);
}
或者您可以使用.split()方法
String year = s.split("-")[0];
修改强>
进一步澄清后,问题是在数组列表中获得独特的年份。
这可以通过将arraylist传递给不接受重复值然后将集合传回数组的Set来完成
// add elements to al, including duplicates
Set<String> hs = new HashSet<>();
hs.addAll(years);
years.clear();
years.addAll(hs);
答案 1 :(得分:0)
您可以在添加到列表之前检查重复项(或者您可以使用Set而不是List)。
startDate count(*)
07-01-2016 17
09-02-2016 14
11-05-2016 77
答案 2 :(得分:-1)
使用Set类。这可以防止多次插入相同的String