Удалить нули из кода страны номера телефона в Objective-C

Я хочу удалить предыдущие нули из кода страны номера телефона. Я воспринимаю это как NSString, потому что номер телефона содержит такие символы, как +, (,), -. Мне нужны эти символы.

e.g

Вход:-

1) NSString *phNo = @"0011234567890";
2) NSString *phNo2 = @"0601234567999";

Выход:-

1) 11234567890
2) 601234567999

Я сделал следующее

if ([phNo length]>10) {
        NSString *countryCodeSubString = [phNo substringToIndex:[phNo length]-10];
        if ([[countryCodeSubString substringToIndex:1]isEqualToString:@"0"]) {
            for (int i=0; i<[countryCodeSubString length]; i++) {
                NSString *str = [countryCodeSubString substringToIndex:i];
                if ([str isEqualToString:@"0"]) {
                    str = [str stringByReplacingOccurrencesOfString:@"0" withString:@""];
                }

            }
        }
    }

Я знаю, что приведенный выше код неверен. Может ли кто-нибудь помочь мне с этим? Как я могу сделать это эффективно?


person iOSAppDev    schedule 22.11.2012    source источник
comment
Вы можете использовать метод hasPrefix.   -  person Davyd Geyl    schedule 22.11.2012


Ответы (1)


Если вы просто хотите удалить предыдущие нули, вы можете сделать это просто так.

NSString *phNo = @"0011234567890";
float number = [phNo floatValue];
NSString *phNoWithOutZero = [NSString stringWithFormat:@"%1.0f", number];

Но это не сработает, если в строке есть специальные символы, кроме числа.

person Ramaraj T    schedule 22.11.2012
comment
Ваше решение также работает. Но у меня есть символы в строке. В любом случае, спасибо. Ранее я пробовал использовать приведенный ниже код, но он выводит Wearg. Можете ли вы сказать мне, что в нем не так? Вот мой код NSString *phNo = @"0011234567890"; NSLog(@"Ph No : %@",[NSString stringWithFormat:@"%d",[phNo intValue]]); Вывод: - Номер телефона: 2147483647 Почему он не работает? - person iOSAppDev; 22.11.2012
comment
Значения Int ограничены 8 байтами (от –2147483648 до 2147483647). Таким образом, если число больше 2147483647, оно будет принято как 2147483647. - person Ramaraj T; 22.11.2012
comment
en.wikipedia.org/wiki/ - person Ramaraj T; 22.11.2012
comment
Спасибо, конечно... Я только что пропустил эту предельную часть. - person iOSAppDev; 22.11.2012