zoukankan      html  css  js  c++  java
  • OC中关于字符串的操作

    比较的时候,从字符串左边开始,一次比较每个字符,直接出现差异、或者其中一个串结束为止。

    比如ABC与ACDE比较,第一个字符相同,继续比较第二个字符,由于第二个字符是后面一个串大,所以不再继续比较,结果就是后面个串大。

    再如ABC与ABC123比较,比较三个字符后第一个串结束,所以就是后面一个串大。

    所以,长度不能直接决定大小,字符串的大小是由左边开始最前面的字符决定的。

    创建一个字符串对象:

    NSstring * str1 = @"hello";

    NSString * str = [[NSString alloc]initWithString:@"hello world!"];

    NSString * str_1 = [[NSString alloc]initWithUTF8String:"hello world"];//把C的字符串转化为OC的字符串

    int a = 123;

    NSString * str_3 = [[NSString alloc]initWithFormat:@"a = %d %s%@", a, "abcd", @"efg"];//用格式化字符串初始化

    //可完成字符串的拼接以及完成C的字符串与OC的字符串的转化

    NSString * str1 = [NSString stringWithString:@"hello world"];

    NSString * str2 = [NSString stringWithUTF8String:"hello world"];

    NSString * str3 = [NSString stringWithFormat:@"%s","hello world"];

    字符串转化:

    NSString * str = @"hello";

    const char *p = [str UTF8String];将OC字符串转化为C的字符串

    str = @"123";

    int a = [str intValue];//将数字串转化成整型数据

    [str floatValue];//将数字串转化成float型

    [str doubleValue];//将数字串转化成double型

    常用的NSString Message(OC 的字符 :typedef unsigned short unichar)

    NSLog(@"%ld",[str1 length]);  //求字符串长度

    NSLog(@"%c", [str1 characterAtIndex:1]);//获取字符串中的字符

    BOOL ret =  [str1 isEqualTo:str2];//比较两个字符串是否相等,相等返回YES(1),不相等返回NO(0)  (BOOL  YES(1)  NO(0))

    long ret1 = [str1 compare:str2];//比较两个字符串的大小,str1大于 返回1  相等返回0  小于返回-1

    long ret2 = [str1 caseInsensitiveCompare:str2];//不区分大小写比较字符串大小

    NSString * ptr = [str2 uppercaseString];//将字符串中的所有小写字符转换成大写 不改变原来的字符串

    ptr = [str1 lowercaseString];//将字符串中的所有大写字符转换成小写 不改变原来的字符串

    ptr = [str3 capitalizedString];//将字符串中出现的第一个字母转换成大写,其余字母小写

    NSString * str4 = @"hello world";

    NSRange range = [str4 rangeOfString:@"wr"];//查找子串,找不到返回NSNotFound 找到返回location和length

    if (range.location != NSNotFound) {

    NSLog(@"%ld %ld",range.location, range.length);

    }

    NSString * str5 = @"helloworld";

    NSString * ptr1 = [str5 substringToIndex:4];//字符串抽取 从下标0开始到4 不包括4

    NSString * ptr2 = [str5 substringFromIndex:5];//从下标5开始抽取到字符串结束 包括5

    NSRange range1 = {4,3};//结构体初始化

    NSString * ptr3 = [str5 substringWithRange:range1];//在range指定范围内抽取

    NSString * ptr4 = [str5 substringWithRange:NSMakeRange(4,3)];//NSMakeRange可以生成一个结构体

    NSString * str = @"www.1000phone.com";

    BOOL ret = [str hasPrefix:@"www"];//判断字符串是否以指定字符串开头

    NSString * str1 = @"1.txt";

    BOOL ret1 = [str hasSuffix:@".txt"];//判断字符串是否以指定的字符串结尾

    NSMutableString可变字符串(动态增加和减少的)  继承于NSString可以使用NSString的所有方法

    NSMutableString * str =  [[NSMutableString alloc]initWithString:@"hello"];//将不可变的字符串转换为可变的字符串

    [str insertString:@"123" atIndex:1];//在指定下标(不要越界)位置插入NSString类型字符串

    [str appendString:@"123"];//在字符串末尾追加字符串

    [str deleteCharactersInRange:NSMakeRange(0, 2)];//从指定下标删除length个字符

    [str setString:@"qianfeng"];//修改字符串亦称对该可变字符串赋值

    [str replaceCharactersInRange:NSMakeRange(3, 1) withString:@"ios"];//将指定下标位置的length个字符替换为指定的字符串


    NSMutableString对象继承自NSString对象,也就是该方法拥有NSString的所有的方法,并且还有它特有的方法

    如下:

    1:插入字符串

     

    ?
    1
    2
    3
    4
    //插入字符串
            NSMutableString *string19=[[NSMutableString alloc]initWithFormat:@"abc"];
            [string19 insertString:@"xyz" atIndex:2];
            NSLog(@"%@",string19);
    ?
    1
    2:替换字符串
    ?
    1
     
    ?
    1
    //替换字符串 [string19 replaceCharactersInRange:NSMakeRange(0, 3) withString:@"123"]; NSLog(@"%@",string19);
    3:删除字符串
    ?
    1
     
    ?
    1
    //删除字符串 [string19 deleteCharactersInRange:NSMakeRange(0, 3)]; NSLog(@"%@",string19);

  • 相关阅读:
    WPF
    binding(转)
    C# winForm调用WebService
    如何用vs2010打开vs2013的项目?
    pyqt——布局管理
    pyqt5——对话框
    pyqt5——俄罗斯方块游戏
    pyqt5——事件和信号
    pyQT5——hello world!
    PyQt5 简介
  • 原文地址:https://www.cnblogs.com/Jia-Heng-He465/p/6480873.html
Copyright © 2011-2022 走看看