文档章节

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

TomatosX
 TomatosX
发布于 2014/10/06 21:33
字数 722
阅读 10
收藏 0
点赞 0
评论 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
博文 143
码字总数 119547
作品 0
成都
iOS工程师
Chapter6~序列:字符串、列表、元组

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

小一姐姐 ⋅ 2016/07/13 ⋅ 0

[学习笔记] [JSON] 轻量级数据交换格式JSON学习笔记

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

kris_fei ⋅ 05/03 ⋅ 0

Java的Json解析包FastJson使用

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

xiaoqiang_sea ⋅ 2017/05/04 ⋅ 0

(第一天)包装对象、作用域、创建对象

基本概念以及注意 直接量 :程序中直接使用的数据值。下面列出的都是直接量: 1 12 //数字2 1.2 //小数3 "hello world" //字符串文本4 true //布尔值5 /javascript/gi //正则...

jeffcky ⋅ 2015/07/29 ⋅ 0

javascript之基本概念

语法 1.1 匹配大小写 javascript中的一切——变量,函数名和操作符——都是区分大小写的。 1.2 标识符 标识符就是指变量,函数,属性的名字,或者函数的参数。命名规则与java一样。 1.3 语句...

柳哥 ⋅ 2015/04/05 ⋅ 0

PHP内核探索:变量存储与类型

<?php$foo = 10;$bar = 20; function change() { global $foo;//echo '函数内部$foo = '.$foo.'<br />';//如果不把$bar定义为global变量,函数体内是不能访问$bar的 $bar = 0; $foo++;} cha......

qzxun ⋅ 2014/07/10 ⋅ 0

六,JavaWeb简略的谈下前端技术JavaScript

首先,JavaScript就是大家熟知的js,它和Java没有半毛钱关系,和JSP也没有半毛钱关系。他是Web页面中的脚本语言,是一种解释型语言,它的发明者看到java挺火的,然后就说,那么咱们就叫他jav...

zhanggong ⋅ 2016/01/13 ⋅ 0

007零基础学Python:Python 正则表达式--学习笔记

Python 正则表达式 正则表达式基础 基本概念: 执行原理: 基本语法: 模式 描述 ^ 匹配字符串的开头 $ 匹配字符串的末尾。 . 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹...

weir_will ⋅ 2017/07/02 ⋅ 0

JavaScript Gerden概述

1.对象 1.1 对象使用和属性 JavaScript中所有变量都是对象,除了null和undefined 1.2 对象作为数据类型 JavaScript对象可以作为哈希表使用,主要用来保存命名的键和值的对应关系 1.3 访问属性...

Seven_7 ⋅ 2014/07/29 ⋅ 0

《剑指Offer》字符串 替换空格

//str.replace(char oldChar,char newChar);用字符newChar替换oldChar;返回一个新的字符串 public class Solution { public String replaceSpace(StringBuffer str) { String s1 = new Strin......

DouDouLee ⋅ 2016/03/07 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

中标麒麟(龙芯版)7.0优盘安装

########################################## 制作U盘安装盘: 1.准备U盘: PMON环境下U盘必须格式化成ext3; 昆仑固件环境下可以格式化成ext3,ext4 2.把整个镜像 xxx.iso 复制到U盘下面 3....

gugudu ⋅ 15分钟前 ⋅ 0

老司机写的大数据建模五步走

本文将尝试来梳理一下数据建模的步骤,以及每一步需要做的工作。 01 第一步:选择模型或自定义模式 这是建模的第一步,我们需要基于业务问题,来决定可以选择哪些可用的模型。 比如,如果要预...

gulf ⋅ 24分钟前 ⋅ 0

PacificA 一致性协议解读

PacificA 的 paper 在 08 年左右发出来的,比 Raft 早了 6,7 年。 在 PacificA 论文中,他们强调该算法使用范围是 LAN (Local Area Network),讲白了就是对跨机房不友好。 不管是 ZAB,Raf...

黑客画家 ⋅ 27分钟前 ⋅ 0

盘符图标个性化

设置自己的专属盘符图标 准备ico格式的图片文件一个,在根目录下创建autorun.inf文件 文件内容 [Autorun]icon=logo.ico 重新启动或者插拔U盘即可看到结果...

阿豪boy ⋅ 27分钟前 ⋅ 0

Windows下QQ聊天记录中图片的默认存放位置

Windows下QQ聊天记录中图片的默认存放位置在设置中是没有说明的。 实测位置在:D:\Documents\Tencent Files\974101467\Image 其中: “974101467”为对应的QQ号; “C2C”为个人之间的聊天图...

临江仙卜算子 ⋅ 33分钟前 ⋅ 0

GC 的三种基本实现方式

参考资料《代码的未来》(作者: [日] 松本行弘)。 由于并非本人原著(我只是个“搬运工“),SO 未经本人允许请尽情转载。 另外个人像说明一下这里所说的GC指泛指垃圾回收机制,而单指Jav...

xixingzhe ⋅ 34分钟前 ⋅ 0

Android双击退出

/** * 菜单、返回键响应 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode......

王先森oO ⋅ 38分钟前 ⋅ 0

idea 整合 vue 启动

刚学习Vue 搭建了一个项目 只能命令启动 Idea里面不会启动 尝试了一下修改启动的配置 如下: 1.首先你要保证你的package.json没有修改过 具体原因没有看 因为我改了这个name的值 就没办法启动...

事儿爹 ⋅ 44分钟前 ⋅ 0

redis在windows环境的后台运行方法

在后台运行,首先需要安装redis服务,命令为 redis-server.exe --service-install redis.windows.conf --loglevel verbose 启动,命令为 redis-server --service-start 停止,命令为 redis-...

程序羊 ⋅ 47分钟前 ⋅ 0

比特币现金开发者提出新的交易订单规则

本周,四位比特币现金的四位开发者和研究员:Joannes Vermorel(Lokad),AmaurySéchet(比特币ABC),Shammah Chancellor(比特币ABC)和Tomas van der Wansem(Bitcrust)共同发表了一篇关...

lpy411 ⋅ 51分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部