#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. Can't deserialize with binaryFormatter after changing namespace of class

    After changing the namespace of my class I can no longer deserialize the objects. I've implemented S ...

  2. Eclipse开发Java程序入门,HelloWord

    今天看到一个专业的学术程序是Java写的,而我经常用的是Matalb,所以感觉十分不舒服.之前学的Java开发感觉也忘光了,所以感觉,知识必须要总结好,不然容易忘记.这也就是我写这篇文章的原因.希望能 ...

  3. golang的缓冲channel和无缓冲channel的区别

    话说golang的channel同步的定义真是让人无力吐槽,码农的用户体验就这么难搞么,超耐磨阿,无缓冲和缓冲居然有这么大区别....靠 转载一段网上的资料 --------------------- ...

  4. [Mac OS] Homebrew简介及安装wine

    Homebrew官网 http://brew.sh/index_zh-cn.html Homebrew是神马 linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案, ...

  5. udp_client.c udp_server.c

    #include <stdlib.h> #include <stdio.h> #include <errno.h> #include <string.h> ...

  6. [转载][概念]Storage Pool, Private RAID Group, Private LUN

    Storage Pool的起源 ========================== Some time ago, EMC introduced the concept of Virtual Prov ...

  7. windows10 phantomjs 安装和使用

    1.下载phantomjs和 Casper phantomjs下载地址:http://phantomjs.org/download.html Casper下载地址:http://casperjs.or ...

  8. [Grunt] Concatenating Your Javascript with grunt-contrib-concat

    Combine serval javascript files together. For angular project, make sure you add angular.min.js firs ...

  9. 将应用发布到WasLiberty的两种方法

    1.直接将War放到defaultserver(或其它自定义server)的dropin目录. 一放进去,war中的app就会随着server启动起来,这个war是会被解压的,用find / -nam ...

  10. Python list替换元素

    替换直接对应位置赋值 假设现在班里仍然是3名同学: >>> L = ['Adam', 'Lisa', 'Bart'] 现在,Bart同学要转学走了,碰巧来了一个Paul同学,要更新班 ...