#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{ @autoreleasepool { NSString *str1=@"this is string A";
NSString *str2=@"this is string B";
NSString *temp;
NSComparisonResult compareResult; //01.计算字符串中字符个数
NSLog(@"字符串长度:%@的长度为%lu",str1,[str1 length]); //02.将一个字符串复制到另一字符串
temp=[NSString stringWithString:str1];
NSLog(@"字符串复制:%@",temp); //03.将一个字符串复制到另一字符串末尾
temp=[str1 stringByAppendingString:str2];
NSLog(@"字符串拼接:%@",temp); //04.验证两个字符串是否相等
if([str1 isEqualToString:str2])
{
NSLog(@"字符串比较:%@与%@相同",str1,str2);
}
else
{
NSLog(@"字符串比较:%@与%@不相同",str1,str2);
} //05.验证一个字符串是否小于,等于或大于另一字符串
compareResult=[str1 compare:str2];
if(compareResult==NSOrderedAscending){NSLog(@"字符串比较:%@<%@",str1,str2);}
else if(compareResult==NSOrderedSame){NSLog(@"字符串比较:%@=%@",str1,str2);}
else{NSLog(@"字符串比较:%@>%@",str1,str2);} //06.将字符串转为大写
temp=[str1 uppercaseString];
NSLog(@"字符串大写:%@",temp); //07.将字符串转为小写
temp=[str1 lowercaseString];
NSLog(@"字符串小写:%@",temp); //08.从字符串中取前3个字符
temp=[str1 substringToIndex:3];
NSLog(@"字符串截取:%@",temp); //09.从字符串中截取第5个字符以后的字符
temp=[str1 substringFromIndex:5];
NSLog(@"字符串截取:%@",temp); //10.截取从索引5到索引13的子字符
temp=[[str1 substringFromIndex:5]substringToIndex:8];
NSLog(@"字符串截取:%@",temp); temp=[str1 substringWithRange:NSMakeRange(5, 8)];
NSLog(@"字符串截取:%@",temp); //11.从另一字符串查找一个字符串
NSString *subStr=@"string A";
NSRange subRange=[str1 rangeOfString:subStr];
NSLog(@"字符串查找:%@位于%@第:%lu个字符,长度为:%lu",subStr,str1,subRange. location,subRange .length); subRange=[str2 rangeOfString:subStr];
if(subRange.location==NSNotFound)
{
NSLog(@"字符串查找:%@中不存在%@",str2,subStr);
}
else
{
NSLog(@"字符串查找:%@中存在%@",str2,subStr);
} }
return 0;
}

输出结果:

2014-02-12 22:41:43.890 05.字符串[1560:303]字符串长度:this is string A的长度为16

2014-02-12 22:41:43.892 05.字符串[1560:303]字符串复制:this is string A

2014-02-12 22:41:43.892 05.字符串[1560:303]字符串拼接:this is string Athis is string B

2014-02-12 22:41:43.892 05.字符串[1560:303]字符串比较:this is string Athis
is string B
不相同

2014-02-12 22:41:43.893 05.字符串[1560:303]字符串比较:this is string A<this is string B

2014-02-12 22:41:43.893 05.字符串[1560:303]字符串大写:THIS IS STRING A

2014-02-12 22:41:43.893 05.字符串[1560:303]字符串小写:this is string a

2014-02-12 22:41:43.893 05.字符串[1560:303]字符串截取:thi

2014-02-12 22:41:43.894 05.字符串[1560:303]字符串截取:is string A

2014-02-12 22:41:43.894 05.字符串[1560:303]字符串截取:is strin

2014-02-12 22:41:43.894 05.字符串[1560:303]字符串截取:is strin

2014-02-12 22:41:43.895 05.字符串[1560:303]字符串查找:string A位于this
is string A
:8个字符,长度为:8

2014-02-12 22:41:43.895 05.字符串[1560:303]字符串查找:this is string B中不存在string
A

Program ended with exit code: 0

Object-C中的字符串对象1-不可变字符串的更多相关文章

  1. 为什么字符串String是不可变字符串&&"".equals(str)与str.equals("")的区别

    为什么字符串String是不可变字符串 实际上String类的实现是char类型的数组 虽然说源码中设置的是private final char[] value; final关键词表示不可变动 但是只 ...

  2. Java基础知识强化101:Java 中的 String对象真的不可变吗 ?

    1. 什么是不可变对象?       众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对 ...

  3. Python_字符串的映射与可变字符串的应用

    ''' maketrans().translate() maketrans()方法用来生成字符映射表,而translate()方法则按映射表中定义的对应关系转换并替换其中的字符,使用这两个方法的组合可 ...

  4. 关于Redis中的字符串对象

    一.SDS redis中定义Object types有5种 /* Object types */ #define REDIS_STRING 0 #define REDIS_LIST 1 #define ...

  5. javascript中的字符串对象和数组对象

    1.javascript的对象的概念 在javascript中,除了null和undefined以处,其他的数据类型都被定义成了对象 也可以用创建对象的方法定义变量,string,math,array ...

  6. javascript中的字符串对象

    1.javascript的对象的概念 在javascript中,除了null和undefined以处,其他的数据类型都被定义成了对象 也可以用创建对象的方法定义变量,string,math,array ...

  7. JavaScript---网络编程(3)-Object、String、Array对象和prototype属性

    本节学习JavaScript的对象和方法(函数)~ Object 对象 提供所有 JScript 对象通用的功能. obj = new Object([value]) 参数 obj 必选项.要赋值为 ...

  8. redis 系列10 字符串对象

    一. 字符串对象编码 Redis中字符串可以存储3种类型,分别是字节串(byte string).整数.浮点数.在上章节中讲到字符串对象的编码可以是int, raw,embstr. 如果一个字符串对象 ...

  9. 关于String s = new String("xyz");创建了几个字符串对象?的问题

    引用自这位朋友:http://blog.sina.com.cn/s/blog_6a6b14100100zn6r.html 首先让我们了解几个概念: 栈:由JVM分配区域,用于保存线程执行的动作和数据引 ...

  10. java中的string对象深入了解

    这里来对Java中的String对象做一个稍微深入的了解. Java对象实现的演进 String对象是Java中使用最频繁的对象之一,所以Java开发者们也在不断地对String对象的实现进行优化,以 ...

随机推荐

  1. mysql查询更新时的锁表机制分析(只介绍了MYISAM)

    为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制. 一.概述 MySQL有三种锁的级别:页级.表级.行级.MyISAM和MEMORY存储引擎采用的是表级锁(t ...

  2. 实验3 OpenGL几何变换

    转自:http://www.cnblogs.com/opengl/archive/2012/10/30/2747130.html 1.实验目的: 理解掌握一个OpenGL程序平移.旋转.缩放变换的方法 ...

  3. iOS开源项目:FlatUIKit

    FlatUIKit是iOS中具有扁平化风格的UI(Flat UI)组件.FlatUIKit的设计灵感来源于Flat UI和Kyle Miller.FlatUIKit中的组件是通过扩展(category ...

  4. 11.线程通信CountDownLatch

    package demo2; import java.util.concurrent.CountDownLatch; /** * Created by liudan on 2017/7/27. */ ...

  5. stl map中的lower_bound和 upper_bound

    map中的lower_bound和upper_bound的意思其实很简单,就两句话: map::lower_bound(key):返回map中第一个大于或等于key的迭代器指针 map::upper_ ...

  6. java学习笔记7--抽象类与抽象方法

    接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...

  7. [Python爬虫] 之五:Selenium 处理滚动条

     selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的.这时候需要借助滚动条来拖 ...

  8. IIS6.0 开启Gzip与PHP Gzip

    因为在做一个项目,项目里面服务器主要提供数据,但是数据多了文件就大了,比较浪费流量和时间,我们便用Gzip来处理.我在本机上是apache,服务器上是IIS6.0,用的是php,那么我就在这里分享一下 ...

  9. 10个CSS简写技巧让你永远受用

    转自:http://blog.bingo929.com/10-css-shorthand-tips.html 前言: CSS简写就是指将多行的CSS属性声明化成一行,又称为CSS代码优化.CSS简写的 ...

  10. (LeetCode 72)Edit Distance

    Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2 ...