//

//  main.m

//  字符串的获取

//

//  Created by admin on 15/8/13.

//  Copyright (c) 2015年 admin. All rights reserved.

//

#import <Foundation/Foundation.h>

/*

1. 获取字符串长度

2. 依据字符串索引获得单个字符    //
这里的索引 就是下标

3. 依据索引获得一个字符串

4. 依据子串获得子串在还有一个字符串中的索引位置

5. 依据字符串。获得字符串的范围

*/

int main(int argc,
const char * argv[]) {

@autoreleasepool {

//  1. 获取字符串长度

NSString *str1 = @"www.baidu.com";

NSUInteger length = [str1
length];  // NSUIteger 表示的是一个无符号的整型

NSLog(@"length = %lu",length);

/*  2. 依据索引获得字符串中的单个字符

注意:

> 给定的索引值必须在0到长度之间。否组会导致异常Range or index out of bounds

> 假设索引值为负。那么获得的值是个负数

*/

unichar c = [str1
characterAtIndex:];

NSLog(@"获得的字符串是:%c",c);

//   3. 依据索引值获得字符串的一个子串

//
从索引開始。包含索引取后面的字符串

NSString *tmpstr2 = [str1
substringFromIndex:];

//
从开头取字符串到索引位置,不包含索引

NSString *tmpstr3 = [str1
substringToIndex:];

// NSRange是个结构体,取字符串的范围,第一个參数为从哪个索引值開始,第二个參数表示取多长

,};

NSString *tmpstr4 = [str1
substringWithRange:s];

NSLog(@"tmpstr2 = %@",tmpstr2);

NSLog(@"tmpstr3 = %@",tmpstr3);

NSLog(@"tmpstr4 = %@",tmpstr4);

//  4. 获得子串在还有一个字符串中的索引位置

NSString *tmpstr5 =
@"bai";

// 
在字符串中寻找子串。并将索引起始位置location和长度length存入到结构体中

NSRange tmpRange = [str1
rangeOfString:tmpstr5];

//  分别打印

NSLog(@"location = %lu, length = %lu",tmpRange.location,tmpRange.length);

// 
能够使用NSStringFromRange 把一个Range结构体转换成字符串

NSString *tmpstr6 =
NSStringFromRange(tmpRange);

NSLog(@"tmpstr6 = %@",tmpstr6);

// 
推断是否找到

if (tmpRange.location ==
NSNotFound) {//enum {NSNotFound = NSIntegerMax};

NSLog(@"tmpstr5不在str1中");

}else

{

NSLog(@"rangeOfString %@",tmpstr6);

}

//  5. 获得子串索引范围

// 
第一个參数为子串,第二个參数为 选择搜索的方法

NSRange tmpRange2 = [str1
rangeOfString:@"com"
options:NSCaseInsensitiveSearch];

NSRange tmpRange3 = [str1
rangeOfString:@"com"];

NSLog(@"tmpRange2 = %@",NSStringFromRange(tmpRange2));

NSLog(@"tmpRange3 = %@",NSStringFromRange(tmpRange3));

}

;

}


小白学开发(iOS)OC_ 字符串的获取 (2015-08-11)的更多相关文章

  1. 小白学开发(iOS)OC_ 字符串重组(2015-08-13)

    // //  main.m //  字符串重组 // //  Created by admin on 15/8/13. //  Copyright (c) 2015年 admin. All right ...

  2. 小白学开发(iOS)OC_ 字符串写入文件(2015-08-13)

    // //  main.m //  字符串写入文件 // //  Created by admin on 15/8/13. //  Copyright (c) 2015年 admin. All rig ...

  3. 小白学开发(iOS)OC_ 经常使用结构体(2015-08-14)

    // //  main.m //  经常使用结构体 // //  Created by admin on 15/8/13. //  Copyright (c) 2015年 admin. All rig ...

  4. 小白学开发(iOS)OC_ block数据类型(2015-08-08)

    // //  main.m //  block数据类型 // //  Created by admin on 15/8/12. //  Copyright (c) 2015年 admin. All r ...

  5. 小白学开发(iOS)OC_ 使用继承来扩充类(2015-08-07)

    // //  main.m //  使用继承来扩充类 // //  Created by admin on 15/8/12. //  Copyright (c) 2015年 admin. All ri ...

  6. 小白学开发(iOS)OC_ SEL数据类型(2015-08-10)

    // //  main.m //  SEL数据类型 // //  Created by admin on 15/8/12. //  Copyright (c) 2015年 admin. All rig ...

  7. 小白学react之网页获取微信用户信息

    通过上一篇<小白学react之EJS模版实战>我们学习了怎样通过EJS模版生成我们高定制化的index.html文件. 本篇我们将会继续延续我们的alt-tutorial项目的实战计划.去 ...

  8. 第十四章 web前端开发小白学爬虫

    老猿从事IT开发快三十年了,接触互联网也很久了,但自己没有做过web前端开发,只知道与前端开发相关的一些基本概念,如B/S架构.html标签.js脚本.css样式.xml解析.cookies.http ...

  9. ios开发——实用技术篇OC篇&获取设备唯一标识

    获取设备唯一标识 WWDC 2013已经闭幕,IOS7 Beta随即发布,界面之难看无以言表...,简直就是山寨Android. 更让IOS程序猿悲催的是,设备唯一标识的MAC Address在IOS ...

随机推荐

  1. 泛型术语:占位类型placeholder

    Here’s a generic version of the same code: struct Stack<Element> { var items = [Element]() mut ...

  2. Oracle中的执行计划

    使用autotrace sqlplus系统参数:SQL> set autotrace trace onSQL> select * from dual;DUM---XExecution Pl ...

  3. biff - 新到邮件提醒

    总览 (SYNOPSIS) biff [ny ] 描述 (DESCRIPTION) Biff 通知系统在当前终端会话期间有新邮件是否提醒你. 支持的选项有 biff n 禁止新邮件提醒. y 开启新邮 ...

  4. Java 斜杠 与 反斜杠

    除号 /(数字键盘的斜杠)网址 /(数字键盘的斜杠)文件地址 \转义 \正则表达式 \

  5. vue脚手架工具vue-cli

    一.什么 是脚手架工具vue-cli? 类似于工人手里面的脚手架一样,帮助工人搭架子用,同样的vue脚手架工具也是帮助我们更好更快速的开发代码的工具 二.vue-cli能做什么? 三.vue-cli安 ...

  6. pom.xml配置引用项目时不生效

    1 在项目pom.xml配置中引用项目A,但是编译时,取提数引起是B: 2 原因是:[Java Build Path - Projects] 引用的还是老的项目B,删除该引用即可解决.

  7. C# Word 类库

    C# Word 类库 2009-08-06 22:10 14292人阅读 评论(11) 收藏 举报 c#objectstring文档microsoftexcel using System;using ...

  8. ajax中的json和jsonp详解

    出现的问题: 花了点时间研究ajax中的json和jsonp的原理,这里记录一下.以前一直在使用ajax调用数据,但是从来没有遇到跨域问题,也从来没有注意过json和jsonp的区别,总是一通乱用.但 ...

  9. BZOJ 4823 Luogu P3756 老C的方块 染色+最小割

    题面太长了请各位自行品尝—>老C的方块 分析: 我们要解决掉所有使人弃疗的组合,还要保证花费最小,容易想到最小割(当然你要是想费用流的话,我们就没办法定义流量了) 我们来分析一下那些令人弃疗的组 ...

  10. IO之BufferedStream缓冲流举例

    import java.io.*; public class TestBufferStream1 { public static void main(String[] args) { try { Fi ...