OC4_NSString操作

//
//  main.m
//  OC4_NSString操作
//
//  Created by zhangxueming on 15/6/10.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>

//NSString
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSString *str1 = @"hello world 千锋";
        //求字符串长度
        NSUInteger len = [str1 length];
        NSLog(@"len = %li", len);
        //获取字符串指定位置的字符
        unichar ch = [str1 characterAtIndex:13];
        NSLog(@"ch = %C", ch);//%C打印unichar字符 %c打印ASCII字符

        //字符串提取
        //从传入下标位置提取子串到字符串结束
        NSString *subStr1 = [str1 substringFromIndex:4];
        NSLog(@"subStr1 = %@", subStr1);
        //提取子串到指定位置(不包含下标位置字符)
        NSString *subStr2 = [str1 substringToIndex:7];
        NSLog(@"subStr2 = %@",subStr2);

        //提取指定范围内的字符串
        NSRange range = {6,5};
        NSString *subStr3 = [str1 substringWithRange:range];
        NSLog(@"subStr3 = %@",  subStr3);

        //NSMakeRange();//构建NSRange变量
        NSString *subStr4 = [str1 substringWithRange:NSMakeRange(2, 6)];
        NSLog(@"subStr4 = %@", subStr4);

        //字符串比较
        NSString *str2 = [NSString stringWithCString:"hallo world中国" encoding:NSUTF8StringEncoding];
        NSString *str3 = [NSString stringWithUTF8String:"hello world中国"];
        NSComparisonResult result = [str2 compare:str3];
        if (result == NSOrderedAscending) {//递增
            NSLog(@"str2 < str3");
        }
        else if(result == NSOrderedDescending)//递减
        {
            NSLog(@"str2 > str3");
        }
        else
        {
            NSLog(@"str2 == str3");
        }
        //以大小写不敏感方式比较字符串
        //[str2 caseInsensitiveCompare:str3];
        //判断两个字符串是否相等
        //- (BOOL)isEqualToString:(NSString *)aString;
        BOOL ret = [str2 isEqualTo:str3];
        if (ret==YES) {
            NSLog(@"str2 == str3");
        }
        else
        {
            NSLog(@"str2 != str3");
        }
        //判断前缀子串
        //- (BOOL)hasPrefix:(NSString *)aString;
        BOOL ret1 = [@"www.baidu.com" hasPrefix:@"www."];
        NSLog(@"ret1 = %d", ret1);
        //判断后缀子串
        //- (BOOL)hasSuffix:(NSString *)aString;
        BOOL ret2 = [@"www.hao123.com" hasSuffix:@"com"];
        NSLog(@"ret2 = %d", ret2);
        //判断是否包含子串(10.10macos)
        BOOL ret3 = [@"hao123" containsString:@"hao"];
        NSLog(@"ret3 = %d", ret3);

        //查找子串
        NSString *str4 = [[NSString alloc] initWithFormat:@"%s","hello world qianworldfeng"];
        NSRange range1 =[str4 rangeOfString:@"world"];
        if (range1.location == NSNotFound) {//不能查找对应的子串, 返回long类型最大值
            NSLog(@"没有查找到字串 notfound = %lu", NSNotFound);
        }
        else
        {
            NSLog(@"location = %lu length = %lu", range1.location, range1.length);
        }

        //倒序查找子串
        NSRange range2 = [str4 rangeOfString:@"world" options:NSBackwardsSearch];
        NSLog(@"location = %li length = %li", range2.location, range2.length);

        //字符串追加
        //并不是直接在原字符串的末尾追加字符串, 而是利用传入的字符串及原字符串创建一个新的字符串
        NSString *str5 = @"hello";
        NSLog(@"%p", str5);
        str5 = [str5 stringByAppendingString:@"world"];
        NSLog(@"str5 = %@", str5);
        NSLog(@"%p", str5);

        //格式化追加字符串
        NSString *str6 = @"qianfeng";
        str6 = [str6 stringByAppendingFormat:@"%d%s",123,"helloworld"];
        NSLog(@"str6 = %@", str6);

        //把字符换串对象转换成整型 浮点型
        int a = [@"12345" intValue];
        float f = [@"3.14" floatValue];
        NSLog(@"a = %d f = %.2f", a, f);

        //返回公共前缀子串
        NSString *str7 = [@"www.baidu.com" commonPrefixWithString:@"www.hao123.com" options:NSLiteralSearch];
        NSLog(@"str7 = %@", str7);

        //大小写转换
        //把小写字母转换成大写字母
        NSString *str8 = [@"baidu中国" uppercaseString];
        NSLog(@"str8 = %@", str8);
        //把大写字母转换成小写字母
        NSString *str9 = [@"BaiDU" lowercaseString];
        NSLog(@"str9 = %@", str9);
        //把每个单词的首字母大写
        NSString *str10= [@"bai du qian feng" capitalizedString];
        NSLog(@"str10 = %@", str10);

        //字符串替换
        //- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement
        NSString *str11= @"hello world qianfeng hello world hello hell qianfeng";
        str11 = [str11 stringByReplacingOccurrencesOfString:@"hello" withString:@"welcome"];
        NSLog(@"str11 = %@", str11);

        //替换指定范围内的字符
        //- (NSString *)stringByReplacingCharactersInRange:(NSRange)range withString:(NSString *)replacement
        NSString *str12 = @"hello world qianfeng";
        str12 = [str12 stringByReplacingCharactersInRange:NSMakeRange(12, 8) withString:@"welcome"];
        NSLog(@"str12 = %@", str12);

        //把OC的字符串对象转换成C字符串
        NSLog(@"%s", [@"hello world" UTF8String]);

        //用网址的内容生成OC字符串对像
        //- (instancetype)initWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error;
        //+ (instancetype)stringWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error;
        NSURL *url= [[NSURL alloc] initWithString:@"http://www.baidu.com"];
        NSString *urlContent = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];//nil 空指针
        NSLog(@"urlContent = %@", urlContent);

        //用文件的内容生成字符串
        //- (instancetype)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;
        //+ (instancetype)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;
        NSString *fileContent = [NSString stringWithContentsOfFile:@"/Users/zhangxueming/Desktop/json.txt" encoding:NSUTF8StringEncoding error:nil];
        NSLog(@"fileContent = %@", fileContent);

    }
    return 0;
}
时间: 2024-10-28 20:49:49

OC4_NSString操作的相关文章

如何用一个app操作另外一个app.比如微信群控那样的

如何实现一个app.控制另外的app,比如市面上群控微信的,是用测试工具的原理?还是什么模拟点击的原理? 如何用一个app操作另外一个app.比如微信群控那样的 >> android 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/android/1010000007186891/如何用一个app操作另外一个app比如微信群控那样的.html

ELK 学习笔记之 elasticsearch Mget操作

Mget操作: 查询多个文档: curl -XGET 'http://192.168.1.151:9200/_mget' -d '{"docs": [{"_index": "library","_type": "books", "_id": "1"}, {"_index": "library","_type"

条件、循环、函数定义、字符串操作练习

注意标准库的两种导入与使用方式,建议大家采用<库名>.<函数名>的方式. 对前面的代码进行优化,用for,while,if,def实现: 用循环画五角星 1 import turtle 2 3 turtle.fillcolor("red") 4 turtle.begin_fill() 5 for i in range(5): 6 turtle.forward(100) 7 turtle.right(144) 8 turtle.end_fill() 用循环画同心圆

Python 文件操作

操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开文件 文件句柄 = open('文件路径', '模式') 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读: 不存在则创建:存在则只追加内容:] "+" 表示可以同时读写某个文件 r+,可读写文件.[可读:可写:可追加] w+,写读 a+,

Python操作数据库(mysql redis)

一.python操作mysql数据库: 数据库信息:(例如211.149.218.16   szz  123456) 操作mysql用pymysql模块 #操作其他数据库,就安装相应的模块 import  pymysql ip='211.149.218.16' port=3306 passwd='123456' user='root' db='szz' conn=pymysql.connect(host=ip,user=user,port=port,passwd=passwd,db=db,cha

数据库权限分配操作

1.远程登录mysqlmysql -h ip -u root -p 密码2.创建用户格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码";例1:增加一个test1用户,密码为123456,可以在任何主机上登录,并对所有数据库有查询,增加,修改和删除的功能.需要在mysql的root用户下进行mysql>grant select,insert,update,delete on *.* to [email protected]&quo

Django(三) ORM 数据库操作

比较有用 转自 http://blog.csdn.net/fgf00/article/details/53678205 一.DjangoORM 创建基本类型及生成数据库表结构 1.简介 2.创建数据库 表结构 二.Django ORM基本增删改查 1.表数据增删改查 2.表结构修改 三.Django ORM 字段类型 1.字段类型介绍 2.字段参数介绍 3.Django ORM 外键操作 一.DjangoORM 创建基本类型及生成数据库表结构 1.简介 ORM:关系对象映射.定义一个类自动生成数

python操作mysql ------- SqlAchemy正传

本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 下载安装 pip3 install pymysql 使用操作 1.执行SQL #!/usr/bin/env python # -*- coding:utf-8 -*- import pymysql # 创建连接 conn = pymysql.connect(host='127.0.0.1

SQLServer数据库自增长标识列的更新修改操作

SQLServer数据库自增长标识列的更新修改操作方法在日常的sql server开发中,经常会用到Identity类型的标识列作为一个表结构的自增长编号.比如文章编号.记录序号等等.自增长的标识列的引用很大程度上方便了数据库程序的开发,但是有时这个固执的字段类型也会带来一些麻烦. 一.修改标识列字段的值:(在执行insert时,将ID手动的设置成想要的值)有时,为了实现某个功能,需要修改类型为Identity自增长类型的字段的值,但由于标识的类型所限,这种操作默认是不允许的.比如,目前数据库有