ios-NSString总结

发现太高深的写不出来了(虽然是从来没写过),总结总结基础的东西吧,让自己以后忘了也能来看看。

1.常用功能使用

1)初始化

NSString *astring = @"This is a String!";                             //固定字符串
NSString *str = [NSString stringWithFormat:@"asd%d%@",123,@"ttt"];    //拼组字符串

2)截取

?
1
2
3
NSString *str = [@ "asd"  substringFromIndex:1];                        //从第几位开始截到最后
NSString *str1 = [str substringToIndex:1];                            //从开始位置截到第几位
NSString *str = [[@ "asd"  substringFromIndex:1] substringToIndex:1];   //从第几位开始截几个字符

3)分解

?
1
NSArray *array = [@ "asd|tes|mmm"  componentsSeparatedByString:@ "|" ];

4)查找

?
1
2
3
4
  NSRange range = [@ "12rasd124"  rangeOfString:@ "asd" ];
  if  (range.location != NSNotFound) {
       NSString *str = [@ "12rasd124"  substringWithRange:range];
  }

5)替换

?
1
NSString *str = [@ "asdasd"  stringByReplacingOccurrencesOfString:@ "asd"  withString:@ "ok" ];

6)路径相关

?
1
2
3
4
[filepath lastPathComponent];                  //获得文件名
[filepath pathExtension];                      //获得文件扩展名
[filtpaht stringByDeletingLastPathComponent];  //获得文件的所在文件夹路径
[filtpath stringByDeletingPathExtension];      //获得去除扩展名的文件路径

7)字符串是否为空

?
1
if  (str.lenght > 0)  //不管str是不是nil都可以这么判断

8)字符串比较

?
1
2
3
if  ([@ "asd"  isEqualToString:@ "asd" ]) {
    
}

9)字符串比大小

?
1
2
3
4
5
6
7
8
9
10
     NSString *stra = @ "asd" ;
     NSString *strb = @ "dfs" ;
     NSComparisonResult result = [stra compare:strb];
     if  (result == NSOrderedSame) {
         
     else  if  (result == NSOrderedAscending) {
     
     else  {
         
     }


2.常用扩展功能(类别扩展)

1)md5

?
1
2
3
4
5
6
7
8
9
10
11
12
13
- (NSString *)md5HexDigest
{
     const  char * str = [self UTF8String];
     unsigned  char  result[CC_MD5_DIGEST_LENGTH];
     CC_MD5(str,  strlen (str), result);
     NSMutableString *ret = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
     
     for ( int  i = 0; i<CC_MD5_DIGEST_LENGTH; i++) {
         [ret appendFormat:@ "%02X" ,result[i]];
     }
     return  ret;
     
}

2)urlEncode

?
1
2
3
4
5
6
7
8
9
10
- (NSString *)stringEncode {
     NSString *encodedString = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)self, NULL, CFSTR( ":/?#[]@!$ &'()*+,;=\"<>%{}|\\^~`" ), kCFStringEncodingUTF8));
     return  encodedString;
}
 
- (NSString *)stringDecode {
     NSString *result = [(NSString *)self stringByReplacingOccurrencesOfString:@ "+"  withString:@ " " ];
     result = [result stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
     return  result;
}

3)sizeFromFont

?
1
2
3
4
5
6
7
8
9
10
11
12
- (CGSize)boundingRectWithSize:(CGSize)size
                   withTextFont:(UIFont *)font {
     if  ([self isEqualToString:@ "" ]) {
         return  CGSizeMake(0, 0);
     }
     NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
     paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
     paragraphStyle.lineSpacing = 0;
     NSDictionary *attributes = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paragraphStyle.copy};
     
     return  [self boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size;
}

4) 是否是邮箱格式

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
- ( BOOL )isEmail
{
     NSString *emailRegEx =  
     @ "(?:[a-z0-9!#$%\\&'*+/=?\\^_`{|}~-]+(?:\\.[a-z0-9!#$%\\&'*+/=?\\^_`{|}"  
     @ "~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\" 
     @ "x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-"  
     @ "z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5"  
     @ "]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-"  
     @ "9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21"  
     @ "-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])" ;  
     
     NSPredicate *regExPredicate = [NSPredicate predicateWithFormat:@ "SELF MATCHES %@" , emailRegEx];  
     return  [regExPredicate evaluateWithObject:[self lowercaseString]];  
}

5) Base64

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
- (NSString *)base64 {
     // Create NSData object
     NSData *nsdata = [self dataUsingEncoding:NSUTF8StringEncoding];
     
     // Get NSString from NSData object in Base64
     NSString *base64Encoded = [nsdata base64EncodedStringWithOptions:0];
     
     // Print the Base64 encoded string
     return  base64Encoded;
}
 
- (NSString *)base64Decoded {
     // NSData from the Base64 encoded str
     NSData *nsdataFromBase64String = [[NSData alloc] initWithBase64EncodedString:self options:0];
     
     // Decoded NSString from the NSData
     NSString *base64Decoded = [[NSString alloc] initWithData:nsdataFromBase64String encoding:NSUTF8StringEncoding];
    
     return  base64Decoded;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值