Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSMutableString 创建赋值以后可以动态在该字符串上更改内容与长度。
 
 
1.创建经典的NSString字符串
 
NSString 与 char* 最大的区别就是 NSString是一个objective对象,而char* 是一个字节数组。@+ ” 字符串 ” 这个符号为objective-c NSString 字符串常量的标准用法,char* 创建的时候 无需添加@
 
 
- (void)viewDidLoad
{
    [super viewDidLoad];
 
    //经典的字符串赋值
    NSString *str0 = @"我是雨松MOMO";
 
    //字符串格式化合并分别包括
    //NSString*类型 int类型 char*类型
    NSString *str1 = [NSString stringWithFormat:@"我的名字:%@ 我的年龄:%d 我的邮箱:%s",@"雨松MOMO", 25,"xuanyusong@gmail.com"];
 
    //字符串赋值 参数中只可以写一个字符串 和第一种很像
    NSString *str2 = [NSString stringWithString:@"我是字符串"];
 
    //字符串转换为utf-8格式 参数为char*类型
    NSString *str3 = [NSString stringWithUTF8String:"字符串转换utf-8格式"];
 
    //字符串合并
    int i  = 100;
    char*c = "xuanyusong";
    NSString *temp = @"我是临时字符串";
 
    //在字符串temp的基础继续添加 int i 与 char* c 组成一个新的字符串
    NSString *str4 = [temp stringByAppendingFormat:@"整型: %d 字符型 :%s",i,c];
 
    //在字符串temp的基础继续添加temp 并组成一个新的字符串
    NSString *str5 = [temp stringByAppendingString:temp];
 
    //字符串输出
    NSLog(@"str0 = %@", str0);
    NSLog(@"str1 = %@", str1);
    NSLog(@"str2 = %@", str2);
    NSLog(@"str3 = %@", str3);
    NSLog(@"str4 = %@", str4);
    NSLog(@"str5 = %@", str5);
 
}
 
 
2.字符串的遍历
 
每一个字符串其实是由若干个char字符组成,字符串的遍历实际上就是将字符串中的每一个字符提取出来。
 
- (void)viewDidLoad
{
    [super viewDidLoad];
 
    //经典的字符串赋值
    NSString *str = @"YUSONGMOMO";
 
    //字符串的长度
    int count = [str length];
 
    NSLog(@"字符串的长度是%d",count);
 
    //遍历字符串中的每一个字符
    for(int i =0; i < count; i++)
    {
        char c = [str characterAtIndex:i];
        NSLog(@"字符串第 %d 位为 %c",i,c);
    }
 
}
 
3.字符串的比较
 
isEqualToString 比较字符串是否完全相等,大小写不一样也无法完全匹配。
hasPrefixe 匹配字符串头
haSuffix     匹配字符串的尾巴
 
- (void)viewDidLoad
{
    [super viewDidLoad];
 
    NSString *str0 = @"雨松MOMO";
    NSString *str1 = @"雨松MOMO";
 
    //字符串完全相等比较
    if([str0 isEqualToString:str1])
    {
        NSLog(@"字符串完全相等");
    }
 
    //字符串以开头比较
    if([str0 hasPrefix:@"雨松"])
    {
        NSLog(@"字符串str0以雨松开头");
    }
 
    //字符串以结尾比较
    if([str1 hasSuffix:@"MOMO"])
    {
        NSLog(@"str1字符串以MOMO结尾");
    }
}
 
4.字符串的截取与大小写改变
 
 
- (void)viewDidLoad
{
    [super viewDidLoad];
 
    NSString *str0 = @"中文my name is xuanyusong";
 
    //截取字符串起始点到index为4之间的内容
    NSString * to = [str0 substringToIndex:4];
 
    NSLog(@"to = %@",to);
 
    //截取字符index为2 到结尾之间的内容
    NSString * from = [str0 substringFromIndex:2];
 
    NSLog(@"from = %@",from);
 
    //设置截取字符串的范围
    //从第二位至第十位
    NSRange rang = NSMakeRange(2, 10);
    NSString * strRang = [str0 substringWithRange:rang];
    NSLog(@"rang = %@",strRang);
 
    //设置字符串首字母大写
    NSLog(@"str0首字母大写:%@",[str0 capitalizedString]);
    //设置字符串全部内容为大写
    NSLog(@"str0大写:%@",[str0 uppercaseString]);
    //设置字符全部内容为小写
    NSLog(@"str0小写:%@",[str0 lowercaseString]);
 
}
 
5.搜索字符串与替换字符串
 
- (void)viewDidLoad
{
    [super viewDidLoad];
 
    NSString *str0 = @"中文my name is xuanyusong";
    NSString *temp = @"is";
    NSRange rang = [str0 rangeOfString:temp];
 
    NSLog(@"搜索的字符串在str0中起始点的index 为 %d", rang.location);
    NSLog(@"搜索的字符串在str0中结束点的index 为 %d", rang.location + rang.length);
 
    //将搜索中的字符串替换成为一个新的字符串
    NSString *str = [str0 stringByReplacingCharactersInRange:rang withString:@"哇咔咔卡卡咔"];
    NSLog(@"替换后字符串为%@", str);
 
    //将字符串中" " 全部替换成 *
    str = [str0 stringByReplacingOccurrencesOfString :@" " withString:@"@"];
    NSLog(@"替换后字符串为%@", str);
 
}
 

object- c 字符串操作的更多相关文章

  1. Python 字符串操作及string模块使用

    python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串操作需求: python的字符串属性函数 python的string模块 1.字符串属性方法操作: 1.>字符串格式输出对 ...

  2. .NET面试题解析(03)-string与字符串操作

      系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 字符串可以说是C#开发中最常用的类型了,也是对系统性能影响很关键的类型,熟练掌握字符串的操作非常重要. 常 ...

  3. C# 格式化字符串,日期,字符串操作汇总

    时间格式化 有时候我们要对时间进行转换,达到不同的显示效果 默认格式为:2005-6-6 14:33:34 如果要换成成200506,06-2005,2005-6-6或更多的该怎么办呢 我们要用到:D ...

  4. [转] JavaScript中的字符串操作

    一.概述    字符串在JavaScript中几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性时,在操作cookie时,当然还有更 多....JavaScript的核心部分提供 ...

  5. JAVA字符串操作 (转)

    JAVA字符串操作 原帖地址:http://blog.163.com/hn_myj@126/blog/static/50555635200861133942947/ 参考:http://blog.cs ...

  6. 第三章 JQuery: HelloWorld--常见方法--css--选择器--筛选器--属性--效果--事件--数组操作--字符串操作--对象转换

    1.jQuery简介 为了简化JavaScript 的开发, 一些JavsScript 库诞生了. JavaScript库封装了很多预定义的对象和实用函数.能帮助使用者建立有高难度交互的页面, 并且兼 ...

  7. Pandas字符串操作及实例应用

    字符串操作 字符串对象方法 val = 'a,b, guido' val.split(',') ['a', 'b', ' guido'] pieces = [x.strip() for x in va ...

  8. python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)

    一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...

  9. C# 字符串操作基本过程(Equals、Compare、EndsWith等处理方法)

    本文只介绍了比较方法,但是EndsWith,IndexOf等方法均采用相同的过程,先设置CultureInfo(一般情况下调用当前线程的CultureInfo,该语言文化可以通过控制面板设置),然后调 ...

  10. 一个非常好的C#字符串操作处理类StringHelper.cs

    /// <summary> /// 类说明:Assistant /// 编 码 人:苏飞 /// 联系方式:361983679 /// 更新网站:http://www.sufeinet.c ...

随机推荐

  1. javascript MD5加密

    /* * Javascript MD5 library - version 0.4 * * Coded (2011) by Luigi Galli - LG@4e71.org - * http://f ...

  2. 使用Android SDK Manager自动下载速度慢解决方法

    可以在SDK Manager 的更新界面,勾选下载项并去android-sdk-windows\temp文件家中查找文件名称例如:android-2.3.1_r02-linux.zip在前面加上链接h ...

  3. windowIsTranlucent 属性

    项目中踩的大坑.  先埋. int alwaysFinish = 0; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERS ...

  4. C# 深入浅出 委托与事件

    C#中的委托和事件的概念接触很久了,但是一直以来总没有特别透彻的感觉,现在我在这里总结一下: 首先我们要知道委托的由来,为什么要使用委托了? 我们先看一个例子: 假设我们有这样一个需求,需要计算在不同 ...

  5. css水平居中的小小探讨

    水平居中是常用的几种布局方式之一.主要分为行内元素的居中,块元素的居中.块元素的居中还分为固定宽度的居中,不定宽度的居中.行内元素的居中,使用text-align:center就可以实现,已知宽度的块 ...

  6. Qt零基础教程(四)QWidget详解(3):QWidget的几何结构

    Qt零基础教程(四)  QWidget详解(3):QWidget的几何结构 这篇文章里面分析了QWidget中常用的几种几何结构 下图是Qt提供的分析QWidget几何结构的一幅图,在帮助的 Wind ...

  7. MapReduce中的排序

           hadoop的计算模型就是map/reduce,每一个计算任务会被分割成很多互不依赖的map/reduce计算单元,将所有的计算单元执行完毕后整个计算任务就完成了.因为计算单元之间互不依 ...

  8. 你好,C++(9)坐216路公交车去买3.5元一斤的西红柿——C++中如何表达各种数值数据 3.3 数值数据类型

    3.3  数值数据类型 从每天早上睁开眼睛的那一刻开始,我们几乎每时每刻都在与数字打交道:从闹钟上的6点30分,到上班坐的216路公共汽车:从新闻中说的房价跌到了100元每平米到回家买菜时的西红柿3. ...

  9. TCP/IP-IP

    A contented mind is a perpetual feast. "知足长乐" 参考资料:TCP/IP入门经典 (第五版) TCP/IP详解 卷一:协议 一.简介 IP ...

  10. 委托异步调用时BeginInvoke的陷阱处理

    这个陷阱来自于一个需求:需要异步在后台处理数据,处理完后触发处理完成的事件,大概是这么写的: EmployeeCollection data = new EmployeeCollection(): d ...