文档章节

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工程师
Chapter6~序列:字符串、列表、元组

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

小一姐姐
2016/07/13
82
0
JavaScript常用数据结构

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

风蓝小栖
08/03
0
0
[学习笔记] [JSON] 轻量级数据交换格式JSON学习笔记

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

kris_fei
05/03
0
0
string类总结第一部分函数介绍

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

GolLong
07/26
0
0
Java的Json解析包FastJson使用

阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征: 速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快...

xiaoqiang_sea
2017/05/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 使用parent方式引用时 获取值属性方式默认@

采用官网提供的 引入依赖时,application.properties中的值变量,无法通过${}获取,这是由于Spring Boot 已经将字符方式调整为 <resource.delimiter>@</resource.delimiter>。故如果在,工程中...

翱翔fly
13分钟前
1
0
HTTPS证书验证流程及SSL证书生成步骤【附nginx开启https配置】

------------------------------------------------------------ HTTPS证书验证流程(极简化版) 1.客户端向服务端请求证书(server.crt) 2.服务端下发证书(server.crt) 3.客户端用预制的...

xiaomin0322
14分钟前
1
0
预编译sql语句和参数化sql能有效防止——sql注入攻击——

预编译和参数化处理sql原理类似: 参数化处理sql 是将参数进行了字符串化处理,把参数中的单引号,井号#,等都做了转义处理,进而在执行sql语句时不会被当做sql中的定界符和指定符来执行。 ...

fang_faye
15分钟前
1
0
springboot最全配置解释

​​​​​​​# ----------------------------------------# 核心属性# ----------------------------------------# 文件编码banner.charset= UTF-8# 文件位置banner.locati...

废柴大叔
16分钟前
57
1
(大致了解下)从单机到2000万QPS: 知乎Redis平台发展与演进之路

导读:知乎存储平台团队基于开源Redis 组件打造的知乎 Redis 平台,经过不断的研发迭代,目前已经形成了一整套完整自动化运维服务体系,提供很多强大的功能。本文作者是是该系统的负责人,文...

Ocean_K
24分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部