java逻辑问题以特定格式显示数字
我有一个问题,正在努力解决它。我需要在java中以某种格式排列数字。 例如,我有一个对象组织的arraylist。Org具有orgId、AppYear、OrgName、OrgCityState等属性。我填写了如下列表:
public List<Org> createList()
{
List<Org> lst = new ArrayList<>();
Org org = new Org();
org.setOrgId(1l);
org.setAppYear("1995");
org.setOrgName("abc");
org.setOrgCityState("Ahd Gujarat");
lst.add(org);
org = new Org();
org.setOrgId(1l);
org.setAppYear("1996");
org.setOrgName("abc");
org.setOrgCityState("Ahd Gujarat");
lst.add(org);
org = new Org();
org.setOrgId(1l);
org.setAppYear("1997");
org.setOrgName("abc");
org.setOrgCityState("Ahd Gujarat");
lst.add(org);
org = new Org();
org.setOrgId(1l);
org.setAppYear("2000");
org.setOrgName("abc");
org.setOrgCityState("Ahd Gujarat");
lst.add(org);
org = new Org();
org.setOrgId(1l);
org.setAppYear("2002");
org.setOrgName("abc");
org.setOrgCityState("Ahd Gujarat");
lst.add(org);
org = new Org();
org.setOrgId(1l);
org.setAppYear("2004");
org.setOrgName("abc");
org.setOrgCityState("Ahd Gujarat");
lst.add(org);
org = new Org();
org.setOrgId(1l);
org.setAppYear("2005");
org.setOrgName("abc");
org.setOrgCityState("Ahd Gujarat");
lst.add(org);
org = new Org();
org.setOrgId(2l);
org.setAppYear("2002");
org.setOrgName("abc");
org.setOrgCityState("Baroda Gujarat");
lst.add(org);
org = new Org();
org.setOrgId(2l);
org.setAppYear("2004");
org.setOrgName("abc");
org.setOrgCityState("Baroda Gujarat");
lst.add(org);
org = new Org();
org.setOrgId(2l);
org.setAppYear("2005");
org.setOrgName("abc");
org.setOrgCityState("Baroda Gujarat");
lst.add(org);
return lst;
}
正如你在数据中看到的,只有AppYear和OrgId是不同的。我需要根据连续的一年来整理这些数据。例如,假设年份为1995199619972000200320042052008。。它应该显示出
AyyYear | OrgID | OrgName | CityState
1995-1997,2000,2003-2005,2008 | 1 | abc | ahd Gujarat
2002,2004-2005 | 2 | abc | Baroda Gujarat.
所以基本上需要在一定范围内计算不同的年份,如上所示。 我试图创造逻辑,但没有成功。我用两个循环来比较每个组织。对于同一个组织,我试图把这些年具体化,但似乎它凌驾于它之上,而不是以这种形式出现。当组织发生变化时,我很难打破循环并集中数据。 希望,我提供了正确的信息。 乔丹
# 1 楼答案
你是说像这样
测试
输出