如何在每个第4个字符后添加连字符到iOS中的字符串

时间:2014-05-29 06:05:26

标签: ios objective-c format

我使用card.io扫描我的信用卡/借记卡。扫描完成后,我会收到'3456789023456789'之类的字符串。我将此字符串值设置为我的文本字段。现在我希望在将字符串值设置为textfield时,它应该以这种格式显示'3456-7890-2345-6789'

4 个答案:

答案 0 :(得分:2)

你应该有一个NSMutableString并使用函数

- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;

示例[myMutableString insertString:@"-" atIndex:multiplesOfFour]

答案 1 :(得分:1)

您可以使用以下代码在每四个字符后插入连字符( - ):

NSMutableString *requiredString = [[NSMutableString alloc] init];
for(int i = 0; i < string.length; i = i+4) {
    NSString *subString = [string substringWithRange:NSMakeRange(i, 4)];
    if(i+4 < string.length) {
        [requiredString appendString:[NSString stringWithFormat:@"%@-", subString]];
    }
    else {
        [requiredString appendString:[NSString stringWithFormat:@"%@", subString]];
        break;
    }
}

答案 2 :(得分:1)

NSMutableString *str = [[NSMutableString alloc] initWithString:@"3456789023456789"];
int four = 4;
for(int i = 0; i < 3 ; i++){
    [str insertString:@"-" atIndex:(i==0 ? four : four*(i+1)+i )];
}

答案 3 :(得分:0)

for( NSInteger i = 3 ; i < aMutableString.length ; i += 4  ) {
    [aMutableString insertString:@"-" atIndex: i + i/4 ] ;
}