从Objective-C中的电话号码的国家/地区代码中删除零

时间:2012-11-22 11:08:12

标签: objective-c ios5 nsstring phone-number country-codes

我想从电话号码的国家/地区代码中删除前面的零。 我把它当作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:@""];
                }

            }
        }
    }

我知道上面的代码是错误的。 任何人都可以帮我吗?我怎样才能有效地做到这一点?

2 个答案:

答案 0 :(得分:2)

int firstNonZeroCharIndex = -1;
for (int i=0; i<phNo.length; ++i) {
    if ([phNo.characterAtIndex:i] != '0') {
        firstNonZeroCharIndex = i;
        break;
    }
}

if (firstNonZeroCharIndex != -1) {
    phNo = [phNo subStringFromIndex:firstNonZeroCharIndex];
}

答案 1 :(得分:1)

如果您只想取消前面的零,那么您可以这样做。

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

但是这不起作用,字符串除了数字之外还有任何特殊字符。