`
Keys
  • 浏览: 37920 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Object-C学习笔记 基础部分(一)NSString常用方法

阅读更多
个人学习笔记
NSString

--实例化方法--------------
NSString *str = [[NSString alloc] init];
NSString *str = [[[NSString alloc] init] autorelease];  

注意:在NSString 中存在自己的实例化和初始化的方法 例如:
NSString *str1 = [NSString stringWithCString:"new String" enconding: NSACIIStringEncoding];
NSString *str2 = [NSString alloc] initWithCString:"new String" enconding: NSACIIStringEncoding];
str1和str2两个对象是相同的。

--NSStringEncoding 中常用的字符编码----------------
     NSASCIIStringEncoding
     NSUTF8StringEncoding
     NSUnicodeStringEncoding

--NSString创建实例----------------
带“@”符号的方法只能定义含有英文和数字的NSString实例,例如:
NSString *str = "Hello money~";
--生成含有中文的NSString方法-------------
//此方法自动释放内存
+ (id)stringWithCString:(const char*)cString encoding:(NSStringEncoding)encoding;
//进行alloc后进行初始化
- (id)initWithCString:(const char*)cString encoding:(NSStringEncoding)encoding;
例如:
NSString *string = [NSString stringWithCString:"您好" encoding:NSUTF8StringEncoding];
NSString *string = [[NSString alloc] initWithCString:"您好" encoding:NSUTF8StringEncoding];

--使用格式创建字符串-------------
+ (id)stringWithFormat:(NSString *)format...
- (id)initWithFormat:(NSString *)format...
例如:
NSString *str = "hello";
NSString *string = [NSString stringWithFormat:@"%@ world",str];
NSLog(string); 结果:hello world
--常用的替换符--------------
%@ NSString实例
%d,%D,%i 整数
%u,%U 无符号整数
%x 将无符号整数以十六进制小写字母显示
%X 将无符号整数以十六进制大写字母显示
%f 小数
%c 字符
%s C语言字符串
%% 显示%字符本身

--------------------------
NSRange

--NSRange的定义
typedef struct _NSRange
{
     unsigned int location;
     unsigned int length;
}NSRange;

NSMakeRange函数
--这个函数比较特殊 返回一个NSRange的对象。
NSMakeRanger(unsigned int location,unsigned int length);
例如:
NSRange range = NSMakeRanger(0,5);
NSLog(@"location is %d,length is %d",range.location,range.length);

---------------------------
计算字符串长度
- (unsigned int)length;

---------------------------
字符串连接,插入和删除
1、连接
- (NSString *)stringByAppendingString:(NSString *)string;
- (NSString *)stringByAppendingFormat:(NSString *)format...;
例如:
     NSString *str1 = @"hello";
     NSString *str2 = @"world";
     NSString *str3 = [str1 stringByAppendingString:str2];
     NSString *str4 = [str2 stringByAppendingFormat:@"%d...%d",10,20];
     str4 --> world 10...20
   
     -----------------
     NSMutableString的生成
     NSString   + (id)string;  //生成空字符串的实例
     + (id)stringWithString:(NSString *)string;     //带自动释放内存
     - (id)initWithString:(NSString *)string;
     例如:
     NSMutableString *string = [NSMutableString stringWithString:@"hello"];
2、追加字符串
     NSMutableString
     + (void)appendString:(NSString *)string;
     - (void)appendFormat:(NSString *)format...;
     例如:
     NSMutableString string = [NSMutableString string];
     [string appendString:@"hello"];
     [string appendString:@"money"];
     [string appendString:@" and world"];
3、插入字符串
     NSMutableString
     + (void)insertString:(NSString *)string atIndex:(unsigned)index;
     从index位置插入字符串
     例如:
     NSMutableString *string = [NSMutableString stringWithString:@"Mac X"];
     [string insertString:@"OS" atIndex:4];
     string --> Mac OS X
4、删除字符串
     NSMutableString
     + (void)deleteCharactersInRange:(NSRange)range;
     例如:
     NSMutableString *string = [NSMutableString stringWithString:@"Mac os"];
     [string deleteCharactersInRange:NSMakeRanger(0,1)];
     NSLog(string);
     string -->ac os;
5、字符串比较
     NSString
     - (BOOL)isEqualToString:(NSString *)string;
6、比较前置串和后置串
     NSString
     - (BOOL)hasPrefix:(NSString *)string;
     - (BOOL)hasSuffix:(NSString *)string;
     例如:
     NSString *str1 = @"Mac OS";
     NSString *str2 = @"Mac Pro";
     BOOL flag;
     flag = [str1 hasPrefix:@"Mac"];  YES
     flag = [str2 hasSuffix:@"OS"];      NO
7、字符串检索
     NSString
     //如果找到就返回范围,否则NSRange的location项被设置为NSNotFound
     - (NSRange)rangeOfString:(NSString *)subString;
     - (NSRange)rangeOfString:(NSString *)subString option:(unsigned)mask;
     - (NSRange)rangeOfString:(NSString *)subString option:(unsigned)mask      range:(NSRange)range;                                                                                       
     -----mask常用选项列表
     NSCaseInsensitiveSearch          不区分字母大小写
     NSLiteralSearch          对字符串进行字节单位的比较,一般可提高检索速度
     NSBackwardsSearch     从范围的末尾开始检索
     NSAnchoredSearch     仅检索制定范围的前部。忽略字符串中间的检索字符
     例如:
     NSString *string = @"hello world";
     NSRange range = [string rangeOfString:@"he"];
     if(range.location != NSNotFound)
     {
          NSLog(@" location=%d,length=%d",range.location,range.length);
     }
8、截取字符串
     NSString
     - (NSString *)substringToIndex:(unsigned)index;     //返回字符串开头至index位的字符串 不包含索引位
     - (NSString *)substringFromIndex:(unsigned)index; //返回字符串第index位至末尾的字符串 包含索引位
     - (NSString *)substringWithRange:(NSRange)range;     //返回字符串中范围range内的字符串 包含索引位
     例如:
     NSString *string = [string substringWithRange:NSMakeRange(5,2)];
9、读取文本文件
     NSString
     + (id)stringWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error     //自动释放内存
   
     - (id)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error
   
     例如:
     NSString *string = [NSString stringWithContentsOfFile:@"/user/test/yw.txt" encoding:NSUTF8StringEncoding error:&error];
     if(string){}
10、输出文本文件
     NSString
     - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error
     //参数 atomically 暂时将文件保存到辅助文件中
     //path
     The file to which to write the receiver. If path contains a tilde (~) character, you must expand it with stringByExpandingTildeInPath before invoking this method.
    ----下面是网上找的例子 感谢 @chenshizero
    //扩展路径
    NSString *Path = @"~/NSData.txt";
    NSString *absolutePath = [Path stringByExpandingTildeInPath];
    NSLog(@"absolutePath:%@",absolutePath);
    NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]);

    //文件扩展名
    NSString *Path = @"~/NSData.txt";
    NSLog(@"Extension:%@",[Path pathExtension]);
0
1
分享到:
评论

相关推荐

    object-c学习笔记

    这篇学习笔记主要涉及了Objective-C的基础知识,包括对象创建、类的结构、文件导入、实例变量、接口与实现、内存管理和属性。 1. **对象创建**: - `string`方法创建的字符串对象是自动释放的,意味着系统会在适当...

    Object-C语言教程0220.zip

    ### 一、Object-C基础 #### 1. 类与对象 在Object-C中,一切皆为对象。类是创建对象的蓝图,它定义了对象的属性(实例变量)和行为(方法)。例如,你可以创建一个名为`Person`的类,包含姓名、年龄等属性和说话、...

    Object-C笔记1_代码

    Objective-C,简称Object-C,是苹果公司开发的一种面向对象的编程语言,它是C语言的超集,添加了Smalltalk风格的消息传递机制。本笔记主要关注的是Object-C中的自定义类的定义与调用,这是理解面向对象编程的关键...

    资源是object-c介绍,同时展现示意demo源码,供大家参考学习

    在本资源包中,我们提供了Object-C的基础介绍以及相关的示例Demo源码,旨在帮助初学者更好地理解和学习这一强大的编程工具。 Objective-C的语法基础: 1. **消息传递**:Objective-C中的对象通过消息传递进行通信,...

    Objective-C语法大全

    Objective-C 是一种面向对象的编程语言,它是C语言的扩展,主要用于Apple的iOS和macOS开发。Objective-C 在XCode环境中进行编写,XCode提供了集成开发环境,包括代码编辑器、Interface Builder(用于设计用户界面)...

    iphone开发学习笔记(1)--NSLog

    在iOS开发中,Objective-C是主要的编程语言,而`NSLog`是开发者最常用的工具之一,用于在程序运行时输出调试信息。本篇笔记将详细介绍`NSLog`的使用和其在iPhone应用开发中的作用。 `NSLog`是Foundation框架的一...

    Objective学习笔记

    根据提供的文件信息,我们可以整理出一系列关于Objective-C的基础知识点,主要涵盖了语法结构、变量类型、内存管理、类与对象操作等方面。以下是对这些知识点的详细解释: ### 1. 类的基本结构 - **声明...

    Objective-C

    Objective-C是在C语言的基础上扩展的,增加了Smalltalk式的面向对象特性,使得它在编写复杂应用程序时具有更高的灵活性和可扩展性。 Objective-C的核心概念主要包括类、对象、消息传递和协议。以下是对这些概念的...

    OC runtime学习笔记之关联对象

    OC Runtime 是Objective-C语言的核心部分,它允许程序在运行时检查和修改类、对象和方法。在Objective-C中,我们通常不能动态地为对象添加属性,但OC Runtime提供了一个解决方案,那就是关联对象(Associated ...

    ios学习笔记之基础数据类型的转换

    在iOS开发中,数据类型的转换是一项基础且重要的技能。本文将深入探讨iOS中常见的数据类型转换,包括NSString、NSData、NSArray、NSDictionary等之间的转换,以及布尔类型、枚举类型、nil、NULL和NSNull的区别,还有...

    iOSDevelopmentTips:iOS开发笔记

    一、Objective-C基础 1. 对象和消息传递:Objective-C的核心是面向对象,其对象通过发送消息来执行操作。理解`+[class]`(类方法)和`-[instance]`(实例方法)的区别以及如何使用`@selector`和`@protocol`至关重要...

Global site tag (gtag.js) - Google Analytics