文档章节

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工程师
私信 提问
[学习笔记] [JSON] 轻量级数据交换格式JSON学习笔记

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

kris_fei
05/03
0
0
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
(第一天)包装对象、作用域、创建对象

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

jeffcky
2015/07/29
0
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
0

没有更多内容

加载失败,请刷新页面

加载更多

在Flutter中嵌入Native组件的解决方案

摘要: 引言 在漫长的从Native向Flutter过渡的混合工程时期,要想平滑地过渡,在Flutter中使用Native中较为完善的控件会是一个很好的选择。本文希望向大家介绍AndroidView的使用方式以及在此...

阿里云官方博客
39分钟前
1
0
aws S3 util demo

package com.example.demo;import com.amazonaws.AmazonClientException;import com.amazonaws.AmazonServiceException;import com.amazonaws.auth.BasicAWSCredentials;import co......

经常把天聊死的胖子
58分钟前
4
0
linux下查看cpu、memo、io、swap性能数据脚本

直接贴脚本: 1、cpu #!/bin/bashCurrentDate=`date -d today '+%Y%m%d'`CurrentTime=`date -d today '+%Y%m%d%H%M'`mytext="$CurrentTime\t`top -b -n 1 | grep Cpu\(s\......

郑加威
今天
5
0
MySQL之——查询重复记录、删除重复记录方法大全

MySQL之——查询重复记录、删除重复记录方法大全

安小乐
今天
2
0
spring容器启动,停止,关闭事件监听-ApplicationEvent

ApplicationEvent ApplicationEvent相当于一个事件,所有自定义事件都需要继承这个抽象类。在Eclipse中Ctrl+Shift+H调用类的层次结构列表,可以看到如下 Application下抽象子类ApplicationCo...

tantexian
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部