前言:现在我们使用很多的理财或者支付软件的时候会发现在金额的显示的地方都会每隔三位用一个逗号隔开,这是因为什么呢? 其实这个作用主要是为了方便用户一眼看出金额的数额,不用一位位的数。那么这个是如何实现的呢,其实也很简单,废话不多说之间上代码。
.h 文件
#import<Foundation/Foundation.h>
@interfaceNSString (Comma)
+(NSString*)strmethodComma:(NSString*)string;
@end
.m 文件
#import"NSString+Comma.h"
@implementationNSString (Comma)
+(NSString*)strmethodComma:(NSString*)string
{
NSString*sign = nil;
if ([stringhasPrefix:@"-"]||[stringhasPrefix:@"+"]) {
sign = [stringsubstringToIndex:1];
string = [stringsubstringFromIndex:1];
}
NSString*pointLast = [stringsubstringFromIndex:[stringlength]-3];
NSString*pointFront = [stringsubstringToIndex:[stringlength]-3];
intcommaNum =([pointFrontlength]-1)/3;
NSMutableArray*arr = [NSMutableArrayarray];
for (inti =0; i < commaNum+1; i++) {
intindex =[pointFrontlength] - (i+1)*3;
intleng =3;
if(index <0)
{
leng =3+index;
index =0;
}
NSRangerange = {index,leng};
NSString*stq = [pointFrontsubstringWithRange:range];
[arraddObject:stq];
}
NSMutableArray*arr2 = [NSMutableArrayarray];
for (inti=[arrcount]-1; i>=0; i--) {
[arr2addObject:arr[i]];
}
NSString*commaString = [[arr2componentsJoinedByString:@","]stringByAppendingString:pointLast];
if (sign) {
commaString = [signstringByAppendingString:commaString];
}
return commaString;
}
@end
只要将这个方法实现,在使用的时候之间调用 +(NSString*)strmethodComma:(NSString*)string;方法就可以实现想要的结果。
注:这是一个风度翩翩的程序猿