zoukankan      html  css  js  c++  java
  • iOS开发_Objective-C_字符串操作

    一、 NSString

    1.  - substringToIndex:  从字符串的开头一直截取到指定的位置,但不包括该位置的字符

    1 NSString *string1 = @"This is a string";
    2 NSString *string2 = [string1 substringToIndex:3];
    3 NSLog(@"string2:%@",string2);
    substringToIndex

    2. - substringFromIndex: 以指定位置开始(包括指定位置的字符),并包括之后的全部字符

    1 NSString *string1 = @"This is a string";
    2 NSString *string2 = [string1 substringFromIndex:3];
    3 NSLog(@"string2:%@",string2);
    substringFromIndex

    3. - substringWithRange: 按照所给出的位置,长度,任意地从字符串中截取子串

    1 NSString *string1 = @"This is a string";
    2 NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)];
    3 NSLog(@"string2:%@",string2);
    substringWithRange:NSMakeRange

    4. - stringByReplacingOccurrencesOfString: 替换字符串中的子字符串为给定的字符串

    1 NSString *str = @“Hello World”;
    2 NSString * newStr = [str stringByReplacingOccurrencesOfString: @"l" withString: @"b"];
    stringByReplacingOccurrencesOfString

    5. - compare: 比较两个字符串的大小, 大于 返回1  相等返回0   小于返回-1

    1 NSString *str1 = @"Hello";
    2 NSString *str2 = @"World";
    3 BOOL result = [str1 compare:str2];
    compare

    6. -caseInsensitiveCompare: 不区分大小写比较字符串

    1 NSString *str1 = @"Hello,World,We,Are,The,Future";
    2 NSString *str2 = @"hello";
    3 BOOL result = [str1 caseInsensitiveCompare:str2];
    caseInsensitiveCompare

    7. - componentsSeparatedByString: 根据传入的字符串, 分割原字符串, 返回分割后的字符串数组

     1 NSString *str1 = @"Hello,World,We,Are,The,Future";
     2 NSArray *result = [str1 componentsSeparatedByString:@","];
     3 NSLog(@"result = %@", result);
     4 
     5 /**
     6          打印: result = (
     7                          Hello,
     8                          World,
     9                          We,
    10                          Are,
    11                          The,
    12                          Future
    13                         )
    14 */
    componentsSeparatedByString

    8. - pathWithComponents: 通过一个数组创建一个路径字符串

    1 NSArray *component = @[@"User", @"DeskTop", @"Objective-C", @"UI"];
    2 NSString *path = [NSString pathWithComponents: component];
    3 NSLog(@"path = %@", path);
    4 // 打印: path = User/DeskTop/Objective-C/UI
    pathWithComponents

    9. - pathComponents: 将一个路径截取为数组

     1 NSString *path = @"User/DeskTop/Objective-C/UI";
     2 NSArray *components = [path pathComponents];
     3 NSLog(@"components = %@", components);
     4 
     5 /**
     6    打印:
     7 
     8 components = (
     9     User,
    10     DeskTop,
    11     "Objective-C",
    12     UI
    13 )
    14  
    15 */   
    pathComponents

    10. - stringByDeletingLastPathComponent: 删除路径的最后一个部分

    1 NSString *path = @"User/DeskTop/Objective-C/UI";
    2 NSString *result = [path stringByDeletingLastPathComponent];
    3 NSLog(@"result = %@", result);
    4 // 打印: result = User/DeskTop/Objective-C
    stringByDeletingLastPathComponent

    11. - stringByAppendingPathComponent: 在路径最后拼接一个组成部分

    1 NSString *path = @"User/DeskTop/Objective-C/UI";
    2 NSString *result = [path stringByAppendingPathComponent:@"1.png"];
    3 NSLog(@"result = %@", result);
    4 // 打印: result = User/DeskTop/Objective-C/UI/1.png
    stringByAppendingPathComponent

    二、 NSMutableString

    1. - setString: 重新设置字符串

     1 [mstr setString:@"This is string AAA"]; 

    2. - replaceCharactersInRange: 替换原字符串某范围内的字符串

    1 NSMutableString *str1 = [[NSMutableString alloc] initWithFormat:@"Hello"];
    2 [str1 replaceCharactersInRange:NSMakeRange(0, 1) withString:@"S"];
    replaceCharactersInRange

    三、 一些使用的操作技巧

    1. 移除所有非数字字符 NSString 保留空格

    1 // 通过创建您想保留,并且使用的字符的字符集来轻松地完成 invertedSet 创建"所有其他"设置。然后将字符串拆分为数组由这一组中的任何字符分隔,并再重新组装该字符串。听起来复杂,但很简单
    2 NSCharacterSet *setToRemove = [[ NSCharacterSet characterSetWithCharactersInString:@"0123456789 "] invertedSet ];
    3 
    4 NSString *newString = [[someString componentsSeparatedByCharactersInSet:setToRemove] componentsJoinedByString:@""];
    代码实现

    常见的NSString方法

     +(id)stringWithContentsOfFile:path encoding:enc error:err

    创建一个新字符串并将其设置为path指定的文件的内容,使用字符编码enc,如果非零,则返回err中的错误。

    +(id)stringWithContentsOfURL:url encoding:enc error:err

    床架一个新字符串,并将其设置为url的内容,使用字符编码enc,如果非零,则返回err中的错误。

    +(id)string   创建一个新的空字符串。

    +(id)stringWithString:nsstring 创建一个新字符串,并将其设置为nsstring

    -   (id)initWithString:nsstring   将新分配的字符串设置为nsstring

    - (id)initWithContentsOfFile:path encoding:enc error:err

    将字符串设置为path指定的文件的内容

    - (id) initWithContentsOfURL:url encoding;enc error:err

    将字符串设置为url(NSURL*)url的内容,使用字符编码enc,如果非零,则返回err中的错误。

    - (UNSIgned int)lengtn  返回字符串中字符数目

    - (unichar) characterAtIndex:i  返回索引i的Unicode字符

    - (NSString*)substringFromIndex:i   返回从i开始直到结尾的字符串

    - (NSString*)substringToIndex:i 返回从该字符串开始位置到索引i的子字符串

    - (NSComparator *)caseInsensitiveCompare:nsstring 比较两个字符串,忽略大小写

    - (NSComparator *)compare:nsstring  比较两个字符串

    - (BOOL)hasPrefix:nsstring 测试字符串是否以nsstring开始

    - (BOOL)isEqualToString:nsstring  测试两个字符串是否相等。

    - (NSString*)capitalizedString 返回每个单词首字母大写的字符串(每个单词的其余字母转换为小写)

    - (NSString *)lowercaseString 返回转换为小写的字符串

    - (NSString *)uppercaseString 返回抓换为大写的字符串

    - (const char *)UTF8String 返回转换为UTF8字符串的字符串

    - (double) doubleValue 返回转换为NSInteger整数的字符串

    - (int)intValue 返回转换为整数的字符串

    NSMutableString字符方法

    +(id)stringWithCapacity:size 创建一个字符串,初始包含size的字符

    - (id)initWithCapacity:size 使用初始容量为size的字符来初始化字符串

    -  (void)setString :nsstring 将字符串设置为nsstring

    -  (void) appendString:nsstring 在接受者的末尾附加nsstring

    -  (void)deleteCharactersInrange:range 删除指定range中的字符

    -  (void)insertString:nsstring atIndex:i以索引i为起始位置插入nsstring

    -  (void) replaceCharactersInrange: range withString:nsstring 使用nsstring替换range指定的字符

    -  (void)replaceOccurrencesOf  String:nsstring withString:nsstring2 options:opts range:range

    根据选项opts,使用指定range中的nsstring2替换所有的nsstring。选项可以包括NSBackwardsSearch(从范围的结尾开始搜索),NSAn冲热点Search(nsstring必须匹配范围的开始),NSLiteralSearch

     
  • 相关阅读:
    常用基础OC 集合
    字典的常用基本用法
    常用基础字符串常用基础实例
    软件测试:测试工程师的素质!
    软件测试:心得简介!
    java 汽车销售收入系统
    收银系统
    流程控制、循环结构
    java 聊天猜拳机器人
    设计模式(六)---建造模式
  • 原文地址:https://www.cnblogs.com/limenglong0226/p/4426058.html
Copyright © 2011-2022 走看看