IOS使用字符串与数字

比较字符串

如果想要比较两个字符串,那么请向第一个字符串发送isEqualToString:消息并将第二个字符串作为参数。可以通过消息返回的布尔值来对字符串进行比较

        NSString *myString1 = [NSString stringWithFormat:@"xrd"];
    NSString *myString2 = [NSString stringWithFormat:@"xrd"];
    BOOL isEqual = [myString2 isEqualToString:myString1];

可以查看某两个字符串是否具有匹配的后缀或前缀。比如字符串“Mr. John Smith, MD”,可以通过向该字符串发送hasPrefix:消息来查看字符串是否具有前缀”Mr”:

    NSString *name = @"Mr. John Smith, MD";
    BOOL hasMrPrefix = [name hasPrefix:@"Mr"];

类似地,可以发送hasSuffix:消息来查看该字符串是否具有后缀”MD”:

    BOOL hasMDSuffix = [name hasSuffix:@"MD"];

可以通过NSRange复合类型定义起始点与子串的长度,进而比较子串。首先通过NSRange信息返回子串,接下来使用子串测试两个字符串是否一样:

    NSString *alphabet = @"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    NSRange range = NSMakeRange(2,3);

    BOOL lettersInrange = [[alphabet substringWithRange:range] isEqualToString:@"CDE"];

操纵字符串

NSMutableString *myMutableString = [[NSMutableString alloc] initWithCapacity:26];

设置字符串的内容

     [myMutableString setString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZ"];

要想向可变字符串追加字符串 可以发送appendString

    [myMutableString appendString:@", 0123456789"];

向可变字符串的其他位置插入字符,需要指定字符串的插入位置并使用insertString

    [myMutableString insertString:@"abcdefg" atIndex:0];

可以通过deleteCharactersInRange:消息并将希望删除的范围作为参数 从可变字符串中删除字符 使用NSMakeRange函数以及想要删除字符的起始位置与长度来定义删除范围

    NSRange range = NSMakeRange(9, 3);
    [myMutableString deleteCharactersInRange:range];

NsMutableString还提供了内置方法 用于将某个范围的所有字符替换为不同的字符。因此,如果想将字符串中的”,”替换为”|”,那么可以通过replaceOccurrencesOfString:withString:options:range:方法来实现
注意:这里的rangeOfString指定了整个字符串 也可以自己定义范围

    NSRange rangeOfString = [myMutableString rangeOfString:myMutableString];

    [myMutableString replaceOccurrencesOfString:@","
                                     withString:@"|"
                                        options:NSCaseInsensitiveSearch
                                          range:rangeOfString];

使用其他字符串替换掉整个范围内的字符 可以通过

    NSRange rangeToReplace = NSMakeRange(0, 4);
    [myMutableString replaceCharactersInRange:rangeToReplace withString:@"More"];

搜索字符串

要想在字符串中搜索另一个字符串,可以向待搜索的字符串发送消息。需要指定待搜索的范围和搜索选项。如果找不到,那么返回NSNotFound或长度为0;如果找到,那么会返回某个范围,其中包含了字符串的定位信息。

NSString *stringToSearch = @"This string is something that you can search.";
    NSRange rangeToSearch = [stringToSearch rangeOfString:stringToSearch];
    NSRange resultsRange = [stringToSearch rangeOfString:@"something"
                                                 options:NSCaseInsensitiveSearch
                                                   range:rangeToSearch];

当搜索完成时,返回的NSRange对象包含了你所需要的信息,如果NSRange的location属性为NSNotFound,那就表示没有搜索到任何结果。否则,NSRange 对象会抱憾搜索字串的位置和长度

    if (resultsRange.location != NSNotFound) {
        NSLog(@"String found starting at location %lu with a length of %lu",resultsRange.location,resultsRange.length);
        NSLog(@"%@",[stringToSearch substringWithRange:resultsRange]);
    } else NSLog(@"The search didn't turn up any results");

将数字转换为字符串

将数字(原生类型或是NSNumber 对象)当作字符串来使用
假设拥有诸如浮点数这样的原生类型

    float fNumber = 12;
    NSString *floatToString = [NSString stringWithFormat:@"%f",fNumber];
如果想要转换的是NSNumber对象
    NSNumber *number = [NSNumber numberWithFloat:30];
    NSString *numberToString = [number stringValue];

将字符串转换为数字

假设拥有以字符串形式存储的数字,你想要将它们用做浮点原生类型,请使用NSString类的floatValue函数获取数字的值

NSString *aFloatValue = @"12.50";
    float f = [aFloatValue floatValue];

如果想要在字符串转换为NSNumber对象,那么需要在NSNumber构造函数中使用floatValue函数

NSNumber *aFloatNumber = [NSNumber numberWithFloat:[aFloatValue floatValue]];

格式化数字

使用NSNumberFormatter类格式化数字,你需要实例化NSNumberFormatter类并设置一些属性,从而按照期望的方式显示数字

/*
没有格式的数字(NSNumberFormatterNoStyle)
以十进制形势展现数字
以货币形式展现数字
以百分比形式展现数字
以科学技术法形式展现数字
以自然语言形式展现数字
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值