获取每个值的单独记录



我有一个列表,List<String> myList=new ArrayList<String>();这个列表包含我正在处理的国家列表。

我正在处理几条记录。我需要以这样一种方式进行计算,以便对每个国家/地区的记录进行单独排序。我使用以下逻辑

for(int zTmp = 0; zTmp<myList.size(); zTmp++)
{
System.out.println("COUNTRY IS"+myList.get(zTmp));
if((record).contains(myList.get(zTmp)))
{  
// my next step
}
}

我怎么会发现每条记录都在 if 条件之后输入。记录按国家/地区按字母顺序排序,每个国家/地区的记录放在一起。请纠正我。

这是我的字符串

RECORD 1@India$
RECORD 2@India$
RECORD 3@United Arab Emirates$
RECORD 4@United Arab Emirates$
RECORD 5@United Kingdom$

按国家/地区名称排序。 我需要给出一个条件,使其进入每个国家的循环,即说记录 1,记录 2 计算必须中断;记录 3 ,4 中断;像这样记录 5。 希望我现在更清楚了。

也许你是这个意思?

String currentCountry = "";
for (String record : myList) {
// Regex for entire string "^....$"
// Country between '@' and '$' (the latter escaped)
String country = record.replaceFirst("^.*@(.*)\$$", "$1");
if (!country.equals(currentCountry)) {
currentCountry = country;
... // Deal with next country
}
}
for(int zTmp = 0; zTmp<myList.size(); zTmp++)
{
System.out.println("COUNTRY IS"+myList.get(zTmp));
if((record).contains(myList.get(zTmp)))
{  
// my next step
}
}

只有当record不包含未完全myList的国家/地区时,您的if条件才会导致false,否则它将至少在一次迭代中true

在评论中你写道:

您要计算 3 条记录

不要使用myList,而是创建一个单独的列表(比如myChoosenCountriesList),仅当您希望条件变为真时if这些国家/地区。

然后将您的代码替换为以下内容:(另请注意其他改进)

int countryCount = myChoosenCountriesList.size();
for(int zTmp = 0; zTmp<countryCount; zTmp++)
{
String countryName = myChoosenCountriesList.get(zTmp);
System.out.println("COUNTRY IS"+countryName);
if(record.contains(countryName))
{  
// my next step
}
}

通过使用 do while 循环实现了所需的输出 这是片段

int zTmp=0;
do  
{
String country=myList.get(zTmp);
if(inputCountry.equals(country))
{
CalcDays(tmpTokens[iTmp]);
myDateList.clear();
}zTmp++;
}while(zTmp<myList.size());

最新更新