user3540000
user3540000

Reputation: 43

How to separate NSString with multiple commas?

Am having this nsstring

NSString * countryStr = @"6023117,159,en_US,Seychelles,SC,Seychelles,6023185,95,en_US,Kuwait,KW,Kuwait,6023182,172,en_US,Swaziland,SZ,Swaziland,6023185,157,en_US,Saudi Arabia,SA,Saudi Arabia,6023182,177,en_US,Tanzania,TZ,Tanzania,6023185,179,en_US,Togo,TG,Togo,6023185,87,en_US,Cote d'Ivoire,CI,Cote d'Ivoire";

now i want to display only the countries which are suffixed by "en_US". can anybody tell me how to split that string to get the countries.

I did like this

NSError * error;
NSString* imageName = [[NSBundle mainBundle] pathForResource:@"CountryList" ofType:@"txt"];
NSString * countrStr = [NSString stringWithContentsOfFile:imageName encoding:NSStringEncodingConversionAllowLossy error:&error];
NSArray * dfd = [countrStr componentsSeparatedByString:@"en_US"];
for(int i=0;i<dfd.count;i++)
{
    NSString * nama = [dfd objectAtIndex:1];
    NSArray * djk = [nama componentsSeparatedByString:@","];
    NSString * aksjd = [djk objectAtIndex:1];
}

Upvotes: 0

Views: 89

Answers (3)

Shoaib
Shoaib

Reputation: 2294

You can do it like this;

NSString * countryStr = @"6023117,159,en_US,Seychelles,SC,Seychelles,6023185,95,en_US,Kuwait,KW,Kuwait,6023182,172,en_US,Swaziland,SZ,Swaziland,6023185,157,en_US,Saudi Arabia,SA,Saudi Arabia,6023182,177,en_US,Tanzania,TZ,Tanzania,6023185,179,en_US,Togo,TG,Togo,6023185,87,en_US,Cote d'Ivoire,CI,Cote d'Ivoire";

    NSArray * arrData = [countryStr componentsSeparatedByString:@","];;//[countryStr componentsSeparatedByString:@"en_US"];

    for(int i=0;i<arrData.count;i++)
    {
        NSString * str = [arrData objectAtIndex:i];

        if ([str isEqualToString:@"en_US"] && i<arrData.count-1)
        {
            NSString* countryName = [arrData objectAtIndex:i+1];

            NSLog(@"countryName %@", countryName);
        }
    }

But you should manage data in your file, loading from resource.

Upvotes: 1

Antzi
Antzi

Reputation: 13444

Your string seems to have the following pattern:

  1. A number,
  2. An other number,
  3. The country language code,
  4. The name,
  5. A short code,
  6. An (other) name.

So what you can do is to use a loop like this:

for (int i = 0; i < dfd.count; i += 6) {
  if ( dfd[i + 2] ) } // check the country code at index i + 2
   // Do something
   }
 }

Upvotes: 0

Edward
Edward

Reputation: 645

Best way to do it is

 NSString *string = [NSString stringWithFormat: @"%@, %@, %@", var1, var2, var3];

Excuse the formatting/syntax errors. Typing this via iPhone. But if there is any errors, look up stringWithFormat: in iOS documents on the apple developer page for corrections.

Upvotes: 1

Related Questions