文档章节

Object-C代码练习【字符串的基本概念和常用处理方法】

TomatosX
 TomatosX
发布于 2014/10/06 21:33
字数 722
阅读 10
收藏 0
//
//  main.m
//  字符串的基本概念和常用处理方法
//
//  Created by on 14-10-5.
//  Copyright (c) 2014年 apple. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
//        ========创建一个字符串常量========
        NSString *string1 = @"这是一个字符串常量";
        NSLog(@"%@", string1);
        
//        ========创建一个空的字符串========
        NSString *string2 = [[NSString alloc]init];
        NSString *string3 = [NSString string];
        NSLog(@"%@", string2);
        NSLog(@"%@", string3);
        
//        ========快速创建一个字符串(已不推荐使用),常量区========
        NSString *string4 = [[NSString alloc] initWithString:@"abc"];
        NSString *string5 = [NSString stringWithString:@"abc"];
        NSLog(@"%@", string4);
        NSLog(@"%@", string5);
        
//        ========创建一个格式化的字符串,堆区========
        NSString *string6 = [[NSString alloc] initWithFormat:@"整数:%d", 10];
        NSString *string7 = [NSString stringWithFormat:@"浮点数:%f", 10.8];
        NSLog(@"%@", string6);
        NSLog(@"%@", string7);
        
//        ========比较内容是否相同========
        if ([string5 isEqualToString:string4]) {
            NSLog(@"内容相同");
        } else {
            NSLog(@"内容不同");
        }
        
//        ========测试字符串是否为同一对象========
//        因为string4和string5是存放在常量区,所以他们对象相同
        if (string4 == string5) {
            NSLog(@"是同一对象");
        } else {
            NSLog(@"不是同一对象");
        }
        
//        这里对象存放在堆区,相当于每个对象开辟的一个新的内存空间,所以不是同一对象
//        但是如果是[NSString stringWithFormat:@"%d", 123];的话,是同一对象(暂时不解)
        NSString *string8 = [NSString stringWithFormat:@"123"];
        NSString *string9 = [NSString stringWithFormat:@"123"];
        if (string8 == string9) {
            NSLog(@"是同一对象");
        } else {
            NSLog(@"不是同一对象");
        }
        
//        ========比较字符串的大小========
        NSString *string10 = [[NSString alloc] initWithFormat:@"a"];
        NSString *string11 = [[NSString alloc] initWithFormat:@"b"];
//        NSComparisonResult是一个枚举类型
//        NSOrderedAscending = -1 (升序)
//        NSOrderedSame = 0 (相等)
//        NSOrderedDescending = 1 (降序)
//        b比a大,所以这里是-1,表示升序
        NSComparisonResult result = [string10 caseInsensitiveCompare:string11];
        NSLog(@"%ld", result);
        
//        ========求字符串长度========
        NSLog(@"string length: %ld", [string11 length]);
        
//        ========字符串的转换========
        NSString *string12 = @"Hello World";
        NSLog(@"大写:%@", [string12 uppercaseString]);
        NSLog(@"小写:%@", [string12 lowercaseString]);
        NSLog(@"首字母大写:%@", [string12 capitalizedString]);
        
//        ========转换成基本数据类型========
        NSString *string13 = @"3.14";
        NSLog(@"%f", [string13 floatValue]);
        NSLog(@"%d", [string13 intValue]);
        
//        ========将字符串转换成数组========
        NSString *string14 = @"abc bcd xyz";
//        以空格为分隔符
        NSArray *array = [string14 componentsSeparatedByString:@" "];
        NSLog(@"%@", array);
        
//        ========截取字符串========
        NSString *string15 = @"abcdef";
//        从0开始到3号字符,不包括3号
        NSLog(@"substringToIndex: %@", [string15 substringToIndex:3]);
//        从3号开始到最后,包括3号
        NSLog(@"substringFromIndex: %@", [string15 substringFromIndex:3]);
        
//        如下两种定义NSRang 的意义相同
        NSRange rang = {2, 2};
//        rang.location = 2;
//        rang.length = 2;
        NSString *newStr = [string15 substringWithRange:rang];
        NSLog(@"截取从2号开始,长度为2的字符串:%@", newStr);
        
//        ========字符串的拼接========
        NSString *string16 = @"123";
        NSString *string17 = @"abc";
        NSLog(@"这是拼接:%@ and %@", string16, string17);
        NSLog(@"%@", [string16 stringByAppendingString:string17]);
        NSLog(@"%@", [string16 stringByAppendingFormat:@"%@", string17]);
        
//        字符串的查询
        NSString *string18 = @"abctarget=_bank123";
        NSRange tmp = [string18 rangeOfString:@"target=_bank"];
        if (tmp.location != NSNotFound) {
            NSLog(@"找到字符串!位置位于:%@", NSStringFromRange(tmp));
        }
/////////////////////////////////////////////////////////////////////////////////////////////
//        ========可变字符串========
//        一下的更改都是在原字符串的基础上更改
        NSMutableString *muStr = [NSMutableString stringWithString:@"字符串"];
//        插入字符串
        [muStr insertString:@"可变" atIndex:1];
        NSLog(@"%@", muStr);
//        删除字符串,NSMakeRange第一个参数是location,第二个是length
        [muStr deleteCharactersInRange:NSMakeRange(1, 2)];
        NSLog(@"%@", muStr);
//        替换字符串
        [muStr replaceCharactersInRange:NSMakeRange(0, 2) withString:@"hello"];
        NSLog(@"%@", muStr);
    }
    return 0;
}

© 著作权归作者所有

共有 人打赏支持
TomatosX
粉丝 22
博文 207
码字总数 119547
作品 0
成都
iOS工程师
私信 提问
字符串

字符串是直接从 object 继承的密封类类型。不可以被继承,表示 Unicode 字符串。 前面我们还了解了可以使用@表示禁止转义。 字符串常用属性 Length 返回字符串长度 Chars 指定字符位置的字符...

彭博
2012/03/09
181
0
Chapter6~序列:字符串、列表、元组

6-1 字符串。string模块中是否有一种字符串方法或者函数可以帮我鉴定下一个字符串是否是另一个大字符串的一部分? string.find() string.index() 6-2字符串标识符。修改例6-1的idcheck.py脚本...

小一姐姐
2016/07/13
82
0
[学习笔记] [JSON] 轻量级数据交换格式JSON学习笔记

JSON基本概念: JSON全名: Java Script Object Natation. 即JavaScript的对象表现形式。 目前已经发展成一种轻量级的数据交换格式。 特点:不依赖于任何语言,跨平台。 使用场景主要用于不同...

kris_fei
2018/05/03
0
0
JavaScript常用数据结构

常用数据结构:Array, Object 不常用数据结构:Set, WeakSet, Map, WeakMap 结构型数据:JSON 特殊结构:Function 常用数据结构 日常使用强烈推荐使用字面量方式创建,以下能字面量就字面量说...

风蓝小栖
2018/08/03
0
0
string类总结第一部分函数介绍

  在前面几章,看了整个String类的源码,给每个方法都行写了注释,但是太过凌乱,今天我就把String类的方法整理归纳,然后再讲一下String类比较难以理解的部分   特此声明:本文篇幅较大...

GolLong
2018/07/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在 Linux 系统查询机器最近重启时间

在你的 Linux 或类 UNIX 系统中,你是如何查询系统上次重新启动的日期和时间?怎样显示系统关机的日期和时间? last 命令不仅可以按照时间从近到远的顺序列出该会话的特定用户、终端和主机名...

来来来来来
31分钟前
0
0
Redis协议是什么样的

前言 我们用过很多redis的客户端,有没有相过自己撸一个redis客户端? 其实很简单,基于socket,监听6379端口,解析数据就可以了。 redis协议 解析数据的过程主要依赖于redis的协议了。 我们...

春哥大魔王的博客
47分钟前
2
0
乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxCool
今天
1
0
携程Apollo统一配置中心的搭建和使用(java)

一.Apollo配置中心介绍 1、What is Apollo 1.1 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到...

morpheusWB
今天
1
0
远程获得的有趣的linux命令

使用这些工具从远程了解天气、阅读资料等。 我们即将结束为期 24 天的 Linux 命令行玩具日历。希望你有一直在看,如果没有,请回到开始,从头看过来。你会发现 Linux 终端有很多游戏、消遣和...

Linux就该这么学
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部