Objective-C字符串初识(上)

1.创建字符串

 1         // 1 直接创建字符串
 2         NSString * str = @"abc";
 3
 4 //       NSString * stra = [[NSString alloc] initWithString:@"def"];
 5         // 2 用C语言字符串创建OC字符串
 6      char * p = "你好";

 7         NSString * strc = [[NSString alloc] initWithCString:p encoding:NSUTF8StringEncoding];
 8         NSLog(@"cstr %@",strc);
 9         // 3 格式化的方式创建字符串
10         // format
11         int age = 19;
12
13         NSString * strf = [[NSString alloc] initWithFormat:@"%d岁上的%@",age,@"大二"];
14         NSLog(@"%@",strf);

2. 字符串的拼接

 1     /*
 2      //1.已知有两个字符串NSString * str1 = @“hello” NSString * str2 =  @“world”,将两个字符串拼接到一起,生成新字符串str,中间用空格分开。
 3
 4      @"hello world"
 5      */
 6
 9         // 用printf函数打印 "hello world"
10         printf("%s %s",a,b);
11         NSString * str1 = @"hello";
12         NSString * str2 = @"world";
13
14         NSLog(@"%@ %@",str1,str2);
15
16         NSString * str3 = [[NSString alloc] initWithFormat:@"%@ %@",str1,str2];
17
18         NSLog(@"format: %@",str3);
19         

3.获取长度以及单个字符

 1         // 1 获取字符串的长度
 2         NSString * str = @"qianfeng";
 3         // 获取长度
 4         NSUInteger length = [str length];
 5         NSLog(@"%lu",length);
 6
 7         // 2 获取单个字符
 8         unichar c = [str characterAtIndex:7];
 9         // %c
10         NSLog(@"%C",c);

4.获取子串

  4.1 index截取前/后 子串

1         // 截取从index开始到结尾的字符串(包括index)
2         NSString * subString1 = [str substringFromIndex:2];
3         NSLog(@"%@",subString1);
4         // 截取从开始到index的字符串(不包括index)
5         NSString * subString2 = [str substringToIndex:3];
6         NSLog(@"%@",subString2);

  4.2 从X开始截取Y长度的子串

1         // www.baidu.com
2         // 截取 baidu
3         NSString * strB = @"www.baidu.com";
4         NSRange rangeB = NSMakeRange(4, 5);
5         NSString * subB = [strB substringWithRange:rangeB];
6         NSLog(@"%@",subB);

  4.2 获取子串范围

 1             //3.已知字符串NSString * str2 = @“I love Beijing!”;
 2             //找出love的范围
 3
 4             NSString * str = @"I love Beijing!";
 5             NSRange range = [str rangeOfString:@"love"];
 6             if (range.location != NSNotFound) {
 7                 NSLog(@"%@",NSStringFromRange(range));
 8             } else {
 9                 NSLog(@"不存在");
10             }
1           //5.将字符串@"When I was young, I loved a girl in neighbor class."中,从young提取到girl。但是不许数。
2             NSString * str = @"When I was young, I loved a girl in neighbor class.";
3
4             NSRange rangeYoung = [str rangeOfString:@"young"];
5             NSRange rangeGirl = [str rangeOfString:@"girl"];
6             // 1234567 6-2
7             NSRange range = {rangeYoung.location,rangeGirl.location-rangeYoung.location+rangeGirl.length};
8             NSString * newStr = [str substringWithRange:range];
9             NSLog(@"%@",newStr);    

5.字符串的判断

  5.1 空字符的判断

    nil和@""都是空字符

1         NSString * str1 = @" ";
2         NSString * str = nil;
3         NSString * str2 = @"";
4         if (str1 == nil || [str1 length] == 0) {
5             NSLog(@"空字符串");
6         } else {
7             NSLog(@"非空");
8         }

  5.2 判断是否以指定内容开头/结尾  

 1         // 2 判断字符串是否以指定的内容开头
 2         NSString * str3 = @"www.qianfeng.com";
 3         BOOL hasPre = [str3 hasPrefix:@"www"];
 4         // YES NO
 5         NSLog(@"%d",hasPre);
 6         if (hasPre) {
 7             NSLog(@"是一个网址");
 8         } else {
 9             NSLog(@"不是一个网址");
10         }
11
12         // qianfeng.txt
13         NSString * str4 = @"qianfeng.txt";
14         BOOL hasSuf = [str4 hasSuffix:@"txt"];
15         if (hasSuf) {
16             NSLog(@"是txt");
17         } else {
18             NSLog(@"不是txt");
19         }

  5.3判断字符串是否相等

 1         NSString * str5 = @"qianfeng";
 2         NSString * str6 = [[NSString alloc] initWithFormat:@"qianfeng"];
 3         NSString * str7 = @"qianfeng";
 4         NSString * str8 = [[NSString alloc] initWithFormat:@"qianfeng"];
 5         NSLog(@"%p %p %p",str5,str6,str7);
 6         // 判断地址是否相等
 7         if (str5 == str6) {
 8             NSLog(@"相等");
 9         } else {
10             NSLog(@"不相等");
11         }
12         // 判断内容是否相等
13         if ([str5 isEqualToString:str6]) {
14             NSLog(@"相等");
15         } else {
16             NSLog(@"不相等");
17         }
18         

  5.4 字符串大小比较

    compare方法

 1         NSString * str9 = @"1235";
 2         NSString * str10 = @"124";
 3         // compare
 4         NSComparisonResult result = [str9 compare:str10];
 5         switch (result) {
 6             case NSOrderedAscending:
 7                 NSLog(@"左边<右边");
 8                 break;
 9             case NSOrderedSame:
10                 NSLog(@"左边=右边");
11                 break;
12             case NSOrderedDescending:
13                 NSLog(@"左边>右边");
14                 break;
15             default:
16                 break;
时间: 2024-08-07 14:39:41

Objective-C字符串初识(上)的相关文章

Python全栈__字符串初识及操作

基础数据类型初识 1.int型 int:用于计算. 十进制转化成二进制的有效位数. 1 0000 0001 2 0000 0010 3 0000 0011 ... ... 100 ? 计算十进制转化成二进制的有效位数..bit_length() i = 100 print(i.bit_length()) 2.字符串str str: 'alex'.'1235443543'.'[1,2,3]'.可存放少量数据. 索引.切片.步长 索引编号: python12期 012345678 p 的正向索引编号

Python成长之路第一篇(1)__字符串初识

在很多编程的书中都会以print  "Hello,world!"这样的而一个程序为开始,那么hello,world是什么呢?这就是本章讲解的字符串(也即是一串字符) 一.单引号,双引号和转义引号 (1)在一般的时候 'Hello,world!'和"Hello,world!"是没有什么区别的,那么为什么会两个都可以用呢?是因为在某些情况下,他们会排上用处 1 >>> "Hellow,world" 2 'Hellow,world' 

数据结构与算法---字符串(上)

   hey,you guys. 好久没有继续我们的数据结构学习了,今天让我们一起来学习,开发中非常重要的一种数据类型--字符串.关于字符串,大家应该不会陌生.例如,我们做web开发,需要校验用户输入的注册信息是否合法,或者判断用户输入的账户.密码.是否正确等等.我们通过调用字符串的相关函数,就可以解决我们的需求.古语有云:"知其然,知其所以然".我们要做的,不仅仅是会调用字符串的方法,更要明白这些方法的原理.例如,在没有学习字符串之前,我认为要比较两个字符串是否相等,只需这样: st

Objective - C 字符串 数组 字典 集合的基本使用

1.字符串的基本使用(NSString,NSMutableString) 字符串初始化常用的基本方法: NSString *str = @"jacky"; //临时的字符串 NSString *str2 = [[NSString alloc] initWithFormat:@"%@,20岁",str]; // 初始化方法 NSString *str3 = [NSString stringWithFormat:@"%@,20 岁",str];  /

Objective-C字符串初识(下)

1.基本数据类型与字符串的相互转换 1.1基本数据类型转换到NSString 1 // 1 int -> 转换成NSString 2 // 5 @"5" 3 int age = 18; 4 NSString * str = [[NSString alloc] initWithFormat:@"%d",age]; 5 6 NSLog(@"%@",str); 7 8 9 /* 10 //7.将任意输入的数字,转换成字符串. 11 //如 125

如果给不含引号的json字符串添加上引号

由于业务的扩张,我选择让数据人员写伪json来处理 计算数据大表到小表excel映射,现使用伪json配置映射关系. 主要担心数据人员少写引号以及配置效率等问题.代码如下注释写的很清楚了. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json.Linq; using Syste

我和ASP.NET MVC有个约会 (初识 *上)

很早之前在项目中使用的软件架构模式,一直想着写一写加深自己对它的理解.但总是一天拖着一天,趁着现在闲,跟大家唠唠嗑这个东西. 首先什么是 MVC(Model-View-Controller) 呢?不得不说这是一个有情怀的思想,它把前后端的代码进行一次极大的解耦.当然这跟我们平常见到的三层是两个完成不一样的概念,它只对 UI 层的一种优化. 我们先来看看它长什么样的吧. 附图 MVC 简单模型:(其实它长的很简单有木有?能看还实用) 根据这个模型你大概就能知道 MVC 其实说白了就是把前后端给分离

SilverLight学习笔记--使用WebClient实现通讯(一)(上传和下载字符串数据)

一.什么是WebClient类   1.基本知识    WebClient类是Mircsoft在.NET框架下提供的向 URI 标识的资源发送数据和从 URI 标识的资源接收数据的公共方法.通过这个类,大家可以在脱离浏览器的基础上模拟浏览器对互联网上的资源的访问和发送信息.它使人们使用起来更加简单方便,然而它也有先天不足的地方.那就是缺少对cookies/session的支持.    WebClient类为Silverlight插件提供了一整套的HTTP客户端功能,可以下载应用程序数据,比如XA

Uploadify/uploadifive上传(中文文档)

Uploadify是一款基于JQuery的优秀的文件/图片上传的插件,有基于Flash和HTML5两种版本. Uploadify/uploadifive主要特点有: 1. 多文件上传 2. 个性化设置 3. 上传进度条显示 4. 拖拽上传(HTML5版本) 官网:http://www.uploadify.com 部署 在部署一个Uploadify实例前,请确保满足最低要求: 1.jQuery 1.4.x 或更高版本 2.Flash Player 9.0.24 或更高版本 3.支持PHP, ASP