1223.1——字符串有关操作

用一段程序来说明:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        int age = 20;
        int height = 170;
        
        /*NSString
        //1.静态 alloc new copy mutablecopy
        NSString *str = @"hello world";
        //2.alloc 空字符串对象
        NSString *str2 = [[[NSString alloc] init] autorelease];
        //3.alloc 有初始值
        NSString *str3 = [[[NSString alloc] initWithString:str] autorelease];
        //不要自己控制内存 工厂方法 便利器方法
        NSString *str31 = [NSString stringWithString:str];
        NSLog(@"%@", str31);
        
        //4.字符串按照一定的格式拼接 age = 20 height = 170
        NSString *str4 = [[[NSString alloc] initWithFormat:@"age=%d height=%d", age, height] autorelease];
         
        NSString *str4 = [NSString stringWithFormat:@"age=%d height=%d", age, height];
        NSLog(@"%@", str4);
        */
        NSString *str = @"虽然书生不强硬霸权,但是偶尔出手,却也已经让他在这个仁义飞扬,激昂热情的仙侠世界里边名声飞扬了。";
        //1. 获取字符串的长度 legth
        NSUInteger length = str.length;
        NSLog(@"lengh of str is %ld", length);
        
        //2.获取子字符串
        //substringFromIndex index->end
        NSString *sStr = [str substringFromIndex:4];
        NSLog(@"fromIndex:4 %@", sStr);
        
        //substringToIndex  start->index
        NSString *toStr = [str substringToIndex:4];
        NSLog(@"toIndex:4 %@", toStr);
        
        //substringWithRange
        /*NSRange range = {4, 8};
          NSRange range;
          range.location = 4;
          range.length = 8;
         */
        NSRange range = NSMakeRange(4, 8);
        NSString *rangeStr = [str substringWithRange:range];
        NSLog(@"range(4,8) %@", rangeStr);
        
        //3.字符串的比较
        //比较两个字符串是否相同 isEqualToString (YES NO)
        if ([@"hello" isEqualToString:@"hello"]) {
            NSLog(@"the same");
        } else{
            NSLog(@"not the same");
        }
        
        /*compare
         NSOrderedAscending a < b
         NSOrderedSame a == b
         NSOrderedDecending a > b
         */
        NSComparisonResult result = [@"ABC" compare:@"BC"];
        switch (result) {
            case NSOrderedAscending:
                NSLog(@"ABC < BC");
                break;
            case NSOrderedSame:
                NSLog(@"ABC = BC");
                break;
            case NSOrderedDescending:
                NSLog(@"ABC > BC");
                break;
            default:
                break;
        }
        
        
        //4. 字符换的查找
        //http(s)://www.baidu.com   .jpg  .mp3  .mov
        NSString *url = @"http://pic33.nipic.com/20131008/13661616_190558208000_2.jpg";
        
        //判断某个字符串是否以http开头 前缀
        if ([url hasPrefix:@"http"]) {
            NSLog(@"url");
        } else{
            NSLog(@"invalid");
        }
        
        if ([url hasSuffix:@"jpg"]) {
            NSLog(@"picture");
        }else{
            NSLog(@"not jpg picture");
        }
        
        //获取子字符串的位置
        NSRange rg = [url rangeOfString:@"pic33"];
        if (rg.length != 0){
            NSLog(@"location:%ld length:%ld", rg.location, rg.length);
        } else{
            NSLog(@"Not fond");
        }
        
        
        //5. 字符串->数字
        NSString *priceStr = @"33.5";
        float price = [priceStr floatValue];
        NSLog(@"price: %f", price);
        
        int temp = 20;
        NSString *tempStr = [NSString stringWithFormat:@"this costs $%d", temp];
        
        //NSMutableString
        //预留一片空间 效率更高
        //NSMutableString *mstr2 = [NSMutableString stringWithCapacity:0];

NSMutableString *mStr = [[NSMutableString alloc] initWithCapacity:0];
        
        int num = 4;
        //appendString
        [mStr appendString:@"四大名著"];
        [mStr appendFormat:@"%d 大名著", num];
        [mStr insertString:@"《" atIndex:0];
        [mStr insertString:@"》" atIndex:mStr.length];
        NSLog(@"%@", mStr);
        
        //字符串的替换
        NSRange rge = [mStr rangeOfString:@"四大名著"];
        [mStr replaceCharactersInRange:rge withString:@"三国压抑"];
        NSLog(@"%@", mStr);
        
        //删除子字符串
        NSRange yge = [mStr rangeOfString:@"压抑"];
        [mStr deleteCharactersInRange:yge];
        NSLog(@"%@", mStr);
        
        //重新设置一个字符串
        [mStr setString:@"西游记"];
        NSLog(@"%@", mStr);
        
        
        
    }
    return 0;
}

时间: 2024-08-25 18:15:28

1223.1——字符串有关操作的相关文章

Python学习笔记五:字符串常用操作,字典,三级菜单实例

字符串常用操作 7月19日,7月20日 ,7月22日,7月29日,8月29日,2月29日 首字母大写:a_str.capitalize() 统计字符串个数:a_str.count("x") 输出字符,不够的使用指定的字符补上,字符居中:a_str.center(50,"-") 判断字符串以什么结尾:a_str.endwith("xx") 将字符串中的tab转换为指定数目的空格:a_str.expandtabs(tabsize=30) 查找指定字符

Shell脚本中替换字符串等操作

在做shell批处理程序时候,常常会涉及到字符串相关操作. 有非常多命令语句.如:awk,sed都能够做字符串各种操作. 事实上shell内置一系列操作符号.能够达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快. 一.推断读取字符串值 表达式 含义 ${var} 变量var的值, 与$var同样     ${var-DEFAULT} 假设var没有被声明, 那么就以$DEFAULT作为其值 * ${var:-DEFAULT} 假设var没有被声明, 或者其值为空

Android jni 编程1(对基本类型字符串的操作)

最近一直在学安卓的jni,主要参考的是黑马程序员的视频教程,讲的确实不错. 那就自己总结一下吧,算是对学习的复习. 这篇博客也主要参考了这位博主:http://www.cnblogs.com/activity-life/p/3643047.html,在这里谢谢了 通过他的博客和视频教程,我结合了两者的方法,把功能实现了,毕竟这个是应用为主,自己学艺不精,这里积累下: 第一篇博客的总结所有Java调取jni是关于字符串的操作,主要包括以下三种类型: //对基本数据类型字符串的访问 //0.无输入,

字符串相关操作

字符串的操作多用用就行了. 在字符串相关操作中,进行字面值的处理需要用库函数,"="操作的是存储字符串的地址(基本类型). 1.C中字符串的赋值 2.C中字符串长度和大小比较 3.C中字符串拼接 4.C中字符串的拆分 4.C中字符串与其他类型转化 sprintf()->其他格式转成字符串  和 sscanf()->字符串转成其他格式; 几个小练习: 1.字符串中去掉重复的字母: int judge[52]={0}; string derepeat(string str){

Python/C++ 对字符串的操作

字符串操作在任何语言中都很常用. 本文列举了一些常见的Python/c++ 对字符串的操作. c++ 的使用了boost libraray,  所涉及到的函数都在  <boost/algorithm/string.hpp> 中定义.   python  c++ 大小写转换 'str'.upper(),  'str'.lower() boost::to_upper('str'), boost::to_upper_copy('str') 字符串包含某个substr str.find(substr)

javascript中对字符串的操作总结

没听过一句话吗?程序员的世界,不处理字符串就是处理数组.这是群里的一位前辈和我说的,显然这和我之前理解的DOM是javascript的核心的不同的,看了几个面试题的内容,感觉前辈说的话非常的有道理,因此总结下,javascript中对字符串的操作. String类型 首先字符串类型是基本类型,但是在这里我们所说的是字符串的对象包装类型.因为只有引用类型才会有属性和方法.实际上每读取一个基本类型的同时都会创建一个对应的基本包装类型,从而让我们能够调用一些方法来操作数据.1.charAt() 和 c

C++中的数组array和vector,lambda表达式,C字符串加操作,C++中新类型数组(数组缓存),多元数组,new缓冲

 使用C++风格的数组,不需要管理内存. array要注意不要溢出,因为它是栈上开辟内存. array适用于任何类型 #include<iostream> #include<array> #include<vector>   //C++的标准库 #include<string>   //C++字符串 #include <stdlib.h> using  std::array; //静态数组,栈上 using std::vector; //动态

【2017-04-01】JS字符串的操作、时间日期的操作、函数、事件、动画基础

一.字符串的操作 1.转大写: s.toLowerCase(); 2.转大写: s.toUpperCase(); 3.字符串的截取: s.substr(3,4);      -从索引3开始截取,截取4位.索引从0开始. 4.将字符串按指定的字符拆开: s.split(",");             引号内放指定的字符.返回的是一个数组. 5.字符串长度: s.length; 6.字符串中一个字符的索引: s.indexOf("world");      worl

javascript中字符串常用操作总结、JS字符串操作大全

字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用操作做个整理,一者加深印象,二者方便今后温习查阅. String对象属性 (1) length属性 length算是字符串中非常常用的一个属性了,它的功能是获取字符串的长度.当然需要注意的是js中的中文每个汉字也只代表一个字符,这里可能跟其他语言有些不一样. var str = 'abc'; console.log(str.length);