iOS开发之数字每隔3位用逗号分隔

demo: 源码下载:http://xiazai.jb51.net/201709/yuanma/DMLimtDemo_jb51.rar

之前做电商类APP时,针对稍大的金额展示时,需要每隔千位添加逗号便于用户识别。

逻辑比较简单,这里按需要写了一个可选前后缀的一个转换方法:

#import "DMViewController.h"
 @interface DMViewController ()
@property (weak, nonatomic) IBOutlet UITextField *titleText;
@property (weak, nonatomic) IBOutlet UILabel *numLab;
@end
@implementation DMViewController
- (IBAction)tapButtonAction:(id)sender {
 UIButton *tempBut = (UIButton *)sender;
 if (tempBut.isSelected) {
 tempBut.selected = NO;
 _numLab.text = @"label";
 } else {
 tempBut.selected = YES;
 NSString *newNumber = [self separateNumberUseCommaWith:_titleText.text];
 _numLab.text = newNumber;
 }
}
// 将数字转为每隔3位整数由逗号“,”分隔的字符串
- (NSString *)separateNumberUseCommaWith:(NSString *)number {
 // 前缀
 NSString *prefix = @"¥";
 // 后缀
 NSString *suffix = @"元";
 // 分隔符
 NSString *divide = @",";
 NSString *integer = @"";
 NSString *radixPoint = @"";
 BOOL contains = NO;
 if ([number containsString:@"."]) {
 contains = YES;
 // 若传入浮点数,则需要将小数点后的数字分离出来
 NSArray *comArray = [number componentsSeparatedByString:@"."];
 integer = [comArray firstObject];
 radixPoint = [comArray lastObject];
 } else {
 integer = number;
 }
 // 将整数按各个字符为一组拆分成数组
 NSMutableArray *integerArray = [[NSMutableArray alloc] init];
 for (int i = 0; i < integer.length; i ++) {
 NSString *subString = [integer substringWithRange:NSMakeRange(i, 1)];
 [integerArray addObject:subString];
 }
 // 将整数数组倒序每隔3个字符添加一个逗号“,”
 NSString *newNumber = @"";
 for (NSInteger i = 0 ; i < integerArray.count ; i ++) {
 NSString *getString = @"";
 NSInteger index = (integerArray.count-1) - i;
 if (integerArray.count > index) {
  getString = [integerArray objectAtIndex:index];
 }
 BOOL result = YES;
 if (index == 0 && integerArray.count%3 == 0) {
  result = NO;
 }
 if ((i+1)%3 == 0 && result) {
  newNumber = [NSString stringWithFormat:@"%@%@%@",divide,getString,newNumber];
 } else {
  newNumber = [NSString stringWithFormat:@"%@%@",getString,newNumber];
 }
 }
 if (contains) {
 newNumber = [NSString stringWithFormat:@"%@.%@",newNumber,radixPoint];
 }
 if (![prefix isEqualToString:@""]) {
 newNumber = [NSString stringWithFormat:@"%@%@",prefix,newNumber];
 }
 if (![suffix isEqualToString:@""]) {
 newNumber = [NSString stringWithFormat:@"%@%@",newNumber,suffix];
 }
 return newNumber;
}
@end 

示意图:

总结

以上所述是小编给大家介绍的iOS开发之数字每隔3位用逗号分隔,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Textarea输入字数限制实例(兼容iOS&安卓)

    最近在做一个微信公众号的页面,其中有对textarea做输入字数限制,而且需要兼容iOS和安卓手机, 下面直接贴代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>textarea输入字数限制(兼容ios和安卓)</title> </head> <body> <!-- 最

  • IOS 开发之NSDictionary转换成JSON字符串

    IOS 开发之NSDictionary转换成JSON字符串 普通情况下,你可能会用一个NSDictionary的分类去做NSDictionary转JSON,如下代码: NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:&error]; if (! jsonData) { return @"{}&qu

  • 解决IOS开发空字符串的方法

    解决IOS开发空字符串的方法 实例代码: -(Boolean) isEmptyOrNull:(NSString *) str { if (!str) { // null object return true; }else if(str == Null){ return true; }else if([str isKindOfClass:[NSNull class]]){ return true; }else { NSString *trimedString = [str stringByTrim

  • iOS中 UIActionSheet字体的修改

    一,效果图. 二,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIViewController <UIActionSheetDelegate> @end RootViewController.m -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UIActionSheet *actio

  • IOS开发之字典转字符串的实例详解

    IOS开发之字典转字符串的实例详解 在实际的开发需求时,有时候我们需要对某些对象进行打包,最后拼接到参数中 例如,我们把所有的参数字典打包为一个 字符串拼接到参数中 思路:利用系统系统JSON序列化类即可,NSData作为中间桥梁 //1.字典转换为字符串(JSON格式),利用 NSData作为桥梁; NSDictionary *dic = @{@"name":@"Lisi",@"sex":@"m",@"tel&qu

  • IOS中用正则表达式判断输入的内容为8-16位且同时包含数字和字母

    今天在项目中需要用到判断用户输入的用户名长度为8-16位且同时包含数字和字母,在网上搜了一下正则表达式的用法,然后参考这篇文章,完美解答了问题.记录一下: 密码有如下要求:由数字和字母组成,并且要同时含有数字和字母,且长度要在8-16位之间. 如何分析需求?拆分!这就是软件设计的一般思路了.于是乎,拆分需求如下: 1,不能全部是数字 2,不能全部是字母 3,必须是数字或字母 只要能同时满足上面3个要求就可以了,写出来如下: ^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z

  • IOS 中UITextField和UITextView中字符串为空和空格的解决办法

    IOS 中UITextField和UITextView中字符串为空和空格的解决办法 在用UITextField,UITextView声明的属性写一些页面的时候,经常会出现这样的小bug,就是给空值或空格也能进行传值或存储,这里给一些解决的小方法: eg: 这里声明了一个属性,就以此为例来说 @property (nonatomic, strong) UITextField *titlefield; 为空时: if(_titlefield.text == nil){ //执行一些警告操作 } if

  • iOS开发之数字每隔3位用逗号分隔

    demo: 源码下载:http://xiazai.jb51.net/201709/yuanma/DMLimtDemo_jb51.rar 之前做电商类APP时,针对稍大的金额展示时,需要每隔千位添加逗号便于用户识别. 逻辑比较简单,这里按需要写了一个可选前后缀的一个转换方法: #import "DMViewController.h" @interface DMViewController () @property (weak, nonatomic) IBOutlet UITextFiel

  • JS填写银行卡号每隔4位数字加一个空格

    1.原生js写法 !function () { document.getElementById('bankCard').onkeyup = function (event) { var v = this.value; if(/\S{5}/.test(v)){ this.value = v.replace(/\s/g, '').replace(/(.{4})/g, "$1 "); } }; }(); 2.jQuery写法 <!DOCTYPE html> <html la

  • 提高iOS开发的小技巧和思路小结 (二)

    前言 之前跟大家分享过一篇<提高iOS开发的小技巧和思路>,但是里面整理的不够全面,通过最近这段时间的整理学习,又整理了一些小技巧和思路分享给大家,下面话不多说了,来看看详细的介绍吧. 一.如何让你的app在后台持续运行一段时间 iOS的app在按下home键的时候,只有不到五秒钟的时间去处理保存或者是清楚资源的工作,这里提供一种办法.(这是在唐巧的书上面学习的) 产品经理的需求:如果app的本地持久化的额图片超过了100mb,需要去清除. 我之前的做法是在程序启动的时候去做这个事情,很显然效

  • iOS开发 正则运算详细介绍

    iOS开发 正则运算 1. 正则运算意义 regular expression 描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将匹配的子串做替换或者从某个串中取出符合某个条件的子串等,而在iOS 中我们多数用于检查字符串是否符合规则 2. 常用正则表达式 (如果想自己动手写出符合需求的正则表达式,只需了解 4 中的符号意义) (1).用户名 "^[a-zA-Z][a-zA-Z0-9_]{5,15}$" (由6-16位字母数字下划线组成,第一位不能为数字或下划线) [a

  • IOS开发常用的正则表达式

    正则表达式是一种用来进行文本匹配的工具,其语法优美简洁.在开发中,查找.对比以及匹配字符串是家常便饭的业务,通过正则表达式我们将这些业务描述成某些需求规则,来让我们的代码更美观.实用.例如我们要验证用户输入的密码长度是否满足6~18位的长度,新手最常见的验证方式是判断输入的密码长度 return (textField.text.length >= 6 && textField.text.leng <= 18); 尽管这种判断方式没有任何问题,而上面的验证换做正则表达式的匹配字符

  • iOS开发中苹果输入手机号变用户的名字

    今天我们的用户输入手机号之后变成了用户的名字,没办法获取验证码,因为手机格式不对.我还是头一次遇到这样的事情. 1.文本替换 遇到这种事情肯定去百度啊,发现还真有人和我遇到相同的情况,原来这个用户在设置->通用->键盘->文本替换把自己的手机号设置自己的名字了,这样只要在UITextField中输入自己的手机号,输入完就会变成自己的名字,出现上图的情况. 其实这个功能还是满好玩的,不过用户要是把自己的手机号设置文本替换了,那么在APP里注册就会出现问题了.当时我就想是不是微信也这样啊,

  • IOS开发基础之二维数组详解

    IOS开发基础之二维数组详解 首先我们知道OC中是没有二维数组的,二维数组是通过一位数组的嵌套实现的,但是别忘了我们有字面量,实际上可以和C/C++类似的简洁地创建和使用二维数组.这里总结了创建二维数组的两种方法以及数组的访问方式. 通过字面量创建和使用二维数组(推荐) // 1.字面量创建二维数组并访问(推荐) NSArray *array2d = @[ @[@11,@12,@13], @[@21,@22,@23], @[@31,@32,@33] ]; // 字面量访问方式(推荐) NSLog

  • iOS开发实现随机图片验证码封装

    在 iOS 开发中,为了防止短信验证码的恶意获取,注册时需要图片验证,比如某共享单车 APP 在注册时就用了图片验证码,如下图: 图片验证码封装思路: 第一眼看到图片验证码,可能会觉得图片验证码是由 UIImage 实现的,但事实上明显不是,这里简单说下图片验证码封装思路. 首先要有一个数组,里面包含 1-9.a-z 这些字符 在 UIView 上显示这些字符 同时在 UIView 上绘制干扰线 效果图 图片验证码效果图 用法 _testView = [[NNValidationView all

  • iOS开发系列--地图与定位源代码详解

    概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个陌生的地方想要查找附近的酒店.超市等就可以打开软件搜索周边;类似的,还有很多团购软件可以根据你所在的位置自动为你推荐某些商品.总之,目前地图和定位功能已经大量引入到应用开发中.今天就和大家一起看一下iOS如何进行地图和定位开发. 定位 地图 定位 要实现地图.导航功能,往往需要先熟悉定位功能,在iO

  • iOS开发之通过银行卡号获取所属银行名称

    废话不多说了,直接给大家贴代码了,具体代码如下所示: #pragma mark - 根据银行卡号判断银行名称 + (NSString *)getBankName:(NSString*) cardId{ //发卡行.卡种名称 NSArray *bankName = @[@"邮储银行·绿卡通", @"邮储银行·绿卡银联标准卡", @"邮储银行·绿卡银联标准卡" , @"邮储银行·绿卡专用卡" , @"邮储银行·绿卡银联标

随机推荐