前言:現在我們使用很多的理財或者支付軟件的時候會發現在金額的顯示的地方都會每隔三位用一個逗號隔開,這是因為什么呢? 其實這個作用主要是為了方便用戶一眼看出金額的數額,不用一位位的數。那么這個是如何實現的呢,其實也很簡單,廢話不多說之間上代碼。
.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;方法就可以實現想要的結果。?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?注:這是一個風度翩翩的程序猿