获取每个值的单独记录

时间:2012-11-05 09:49:16

标签: java android

我有一个列表,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$

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

3 个答案:

答案 0 :(得分:0)

也许你的意思是这个?

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
    }
}

答案 1 :(得分:0)

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不包含完整false中不存在的国家/地区时,record条件才会生成myList,否则它将是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
    }
}

答案 2 :(得分:0)

通过使用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());