iOS  NSString 最基本用法_技术成长笔记_新浪博客

1.把字符串写入到制定文件夹中
 NSString *myString = @"rongtianText –Intexnet";
    NSError *error;
    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"tmp/rongtian.txt"];
    if (![myString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error]) {
        NSLog(@"写入文件错误 %@",error);
        return;
    }

2.NSString范围
 NSRange r;
    r.location = 4;
    r.length = 5;
    NSString *strSub = [str substringWithRange:r];
    NSLog(@"范围  %@",strSub);
3.搜索
    NSRange searchRange = [str rangeOfString:@"five"];
    if (searchRange.location != NSNotFound) {
        NSLog(@"搜索 location  %d   %d",searchRange.location,searchRange.length);
    }
4.替换
 NSString *replaced = [str stringByReplacingOccurrencesOfString:@" " withString:@"+"];
    NSLog(@"替换的文件  %@",replaced);

#pragma mark -字符串的比较

void text() {

   NSString * str = @"RongTian";

    // 转成大写

    [str uppercaseString];

    // 转成小写

    [str lowercaseString];

    // 首字母大写,其余小写

    [@"ffEW" capitalizedString];

    

}


#pragma mark 比较2个字符串的大小

void compareString() {

    

    // NSOrderedAscending    -1

    // NSOrderedSame

    // NSOrderedDescending

    

   

  NSComparisonResult result = [@"bmn" compare:@"azz"];

   if (result == NSOrderedSame) {

       NSLog(@"左 == 右");

    }else if (result == NSOrderedDescending) {

       NSLog(@"左 > 右");

    }else if (result == NSOrderedAscending)

    {

       NSLog(@"左 <</span> 右");

    }

    

   

   NSComparisonResult caseInsenresult = [@"dffA" caseInsensitiveCompare:@"dffa"];

   if (caseInsenresult == NSOrderedSame) {

       NSLog(@"左 == 右");

    }else if (caseInsenresult == NSOrderedDescending) {

       NSLog(@"左 > 右");

    }else if (caseInsenresult == NSOrderedAscending)

    {

       NSLog(@"左 <</span> 右");

    }

}


#pragma mark 字符串的搜索

void searchString() {

       NSString *str = @"456789456";

    NSLog(@"是否456开头 %i", [str hasPrefix:@"456"]);

    NSLog(@"是否789结尾 %i",[str hasSuffix:@"789"]);

    

   NSRange range = [str rangeOfString:@"567"];

   if (range.location == NSNotFound) {

        NSLog(@"str中没有找到 567");

    }else {

        NSLog(@"搜索范围 %@",NSStringFromRange(range));

    }

    // 或者

//    if (range.length == 0 ) {

//        NSLog(@"str中没有找到 567");

//    }

   

    // 从尾开始搜索

    range = [str rangeOfString:@"456" options:NSBackwardsSearch] ;

    NSLog(@"从尾搜索的范围 %@",NSStringFromRange(range));

       

//    [str rangeOfString:

0

阅读 评论 收藏 转载 喜欢 打印 举报/Report
加载中,请稍候......
  • 评论加载中,请稍候...
发评论

登录名:密码:找回密码 注册 记住登录状态

昵   称:

评论并转载此博文e03ccea8f1fb3ea293c68d3a9236e109.gif

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用桥接(bridge)将NSString对象转换为CFStringRef类型,然后使用CFStringGetCString或CFStringGetCharacters等函数将其转换为C语言字符串或Unicode字符数组。例如: ``` NSString *str = @"Hello, world!"; CFStringRef cfStr = (__bridge CFStringRef)str; const char *cStr = CFStringGetCStringPtr(cfStr, kCFStringEncodingUTF8); ``` 注意,CFStringRef和NSString并不是相同的类型,它们只是在Core Foundation和Foundation框架中相互转换的对象。因此,在使用CFStringRef时需要遵循Core Foundation的内存管理规则,如需要手动释放内存等。 ### 回答2: 要将NSString*转换为struct __CFString *,可以使用桥接(bridge)方法来实现。 在Objective-C中,NSString和CFString是可以相互转换的,因为它们彼此兼容。所以我们可以使用__bridge动态转换不同的指针类型。 具体步骤如下: 1. 首先,引入CoreFoundation框架,因为CFString是属于CoreFoundation的一部分。在文件头部添加以下代码: ```objc #import <CoreFoundation/CoreFoundation.h> ``` 2. 在需要进行转换的地方,使用__bridge关键字进行类型转换。代码如下: ```objc NSString *str = @"Hello, World!"; struct __CFString *cfString = (__bridge struct __CFString *)str; ``` 这样,通过将NSString指针转换为struct __CFString指针,就可以实现类型的转换。 需要注意的是,这种转换是一个桥接操作,不会进行实际数据的复制,只是让两种类型的指针相互引用同一块内存区域。 另外,为了避免出现内存管理问题,如果CFString在ARC环境下使用,还需要使用__bridge_retained进行转换,确保CFString对象在不再使用时被正确释放。 总结起来,NSString*转换为struct __CFString*的关键在于使用__bridge关键字进行转换操作。 ### 回答3: NSString*转换为struct __CFString *的方法是通过桥接(bridging)操作来实现的。在Objective-C中,可以使用__bridge关键字将NSString对象转换为指向CFStringRef的指针。 具体转换方法如下: 1. 首先,要确保项目中引入了CoreFoundation框架。 2. 使用__bridge关键字将NSString对象转换为struct __CFString *。代码示例如下: NSString *myString = @"Hello World"; struct __CFString *myCFString = (__bridge struct __CFString *)myString; 在上述代码中,myString是一个NSString对象,将其转换为struct __CFString *类型的指针myCFString。 3. 进行转换后,可以使用CFStringRef的函数和方法来操作myCFString。例如,可以使用CFStringGetLength()函数来获取myCFString的长度。 CFIndex length = CFStringGetLength(myCFString); 需要注意的是,转换后的指针只是一个指向NSString对象底层CoreFoundation框架中的数据结构的指针,并不是一个完全独立的对象。因此,在操作完myCFString后,不需要手动释放内存,系统会自动处理内存管理。 总之,通过使用__bridge关键字,可以方便地将NSString*转换为struct __CFString *类型的指针,从而在需要使用CoreFoundation框架的场景中使用NSString对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值