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