OC Foundation框架—字符串操作方法及习题
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
/*
不可变字符串
1.创建字符串
实例方法(3种)
类方法(3种)
2.不可变字符串:
统计长度(2种)
索引提取 (3种)
比较 (3种)
查照字符串位置(1种)
判断前后缀
转换数字
大小写转换
字符串提取
可变字符串
1.创建可变字符串
2.可变字符串的操作
增(3种)删(1种)改(1种)查
*/
//实例方法(3种)
NSString *str1 = @"";
NSString *str2 = [[NSString alloc] initWithFormat:@"%d4567",];
// NSString *str3 = [[NSString alloc] initWithString:str2];//传的是对象
//类方法(3种)
NSString *str4 = [NSString stringWithFormat:@"Abc%@eFg",@"d"];
// NSString *str5 = [NSString stringWithString:str4];
//统计长度(2种)
NSUInteger length = [str1 length];
NSUInteger length1 = str1.length;
NSLog(@"%lu %lu",length,length1);
//索引提取 (3种)
NSString *newStr1 = [str1 substringFromIndex:];
NSLog(@"%@",newStr1);
NSString *newStr2 = [str1 substringToIndex:];
NSLog(@"%@",newStr2);
NSString *newStr3 = [str1 substringWithRange:NSMakeRange(, )];
NSLog(@"%@",newStr3);
//比较 (3种)
if ([str1 isEqualToString:str2]) {
NSLog(@"相同");
}else
NSLog(@"不相同");
if ([str1 compare:str2] == NSOrderedAscending) {
NSLog(@"str1>str2");
}
else if ([str1 compare:str2] == NSOrderedDescending)
NSLog(@"str1<str2");
else if ([str1 compare:str2] == NSOrderedSame)
NSLog(@"==");
if ([str1 caseInsensitiveCompare:str2] == NSOrderedAscending) {
NSLog(@"str1>str2");
}
else if ([str1 caseInsensitiveCompare:str2] == NSOrderedDescending)
NSLog(@"str1<str2");
else if ([str1 caseInsensitiveCompare:str2] ==NSOrderedSame)
NSLog(@"==");
// 查找字符串位置
NSRange range = [str1 rangeOfString:str2];
if (range.location != NSNotFound) {
NSLog(@"location:%lu length:%lu",range.location,range.length);
} else {
NSLog(@"没找到");
}
//判断前后缀(2种)
BOOL flag = [str4 hasPrefix:@"abc"];
NSLog(@"%d",flag);
BOOL anotherFlag = [str4 hasSuffix:@"fg"];
NSLog(@"%d",anotherFlag);
//转换数字(4种)
int number = [str1 intValue];
NSLog(@"%d",number);
NSInteger number1 = [str1 intValue];
NSLog(@"%ld",number1);
NSString *str6 = @"1234567.89";
double number2 = [str6 doubleValue];
NSLog(@"%lf",number2);
//大小写转换
NSString *upStr = [str4 uppercaseString];
NSLog(@"%@",upStr);
NSString *lowStr = [str4 lowercaseString];
NSLog(@"%@",lowStr);
NSString *tempStr = [str4 capitalizedString];
NSLog(@"%@",tempStr);
// 可变字符串
// 实例方法
NSMutableString *muStr1 = [[NSMutableString alloc]
initWithFormat:@"1%d3",];
NSMutableString *muStr2 = [[NSMutableString alloc]
initWithString:@""];
NSMutableString *muStr3 = [[NSMutableString alloc]
initWithCapacity:];
// 类方法
NSMutableString *muStr4 = [NSMutableString stringWithFormat:@"4%d6",];
NSMutableString *muStr5 = [NSMutableString stringWithString:@""];
NSMutableString *muStr6 = [NSMutableString stringWithCapacity:];
//增(3种)
[muStr1 appendFormat:@"%d",];
NSLog(@"%@",muStr1);
[muStr2 appendString:@""];
NSLog(@"%@",muStr2);
[muStr3 insertString:@"abcdefghijklmn" atIndex:];
NSLog(@"%@",muStr3);
[muStr4 insertString:@"abcdefghijklmn" atIndex:];
NSLog(@"%@",muStr4);
//删除
[muStr5 deleteCharactersInRange:NSMakeRange(, )];
NSLog(@"%@",muStr5);
//改
[muStr6 replaceCharactersInRange:NSMakeRange(, ) withString:@""];
NSLog(@"%@",muStr6);
[muStr5 replaceCharactersInRange:NSMakeRange(, ) withString:@"abcd"];
NSLog(@"%@",muStr5);
#import <Foundation/Foundation.h> @interface MyStringTools : NSObject /* 1.创建一个类,要求:
(1)、定义一个方法,能完成字符串逆序输出的操作
(2)、定义一个方法,能删除某字符串中的指定字串 myStringTool delete:(NSString*) InString:(NSString*) (3)、定义一个方法,能查找某字符串在某字符串中出现的次数
(4)、定义一个方法,能传入两个字符串,将这个字符串组合成一个新的对称字符串返回
(5)、定义一个方法,能将原字符串进行小写转大写,大写转小写
(6)、定义一个方法,能压缩传入的字符串
(比如输入@"aaabbbcceaa" 输出@"3a3b2c1e2a")
(7)、定义一个方法,能对传入的字符串按照字母顺序进行排列
(比如输入@"aczabczab" 输出@"aaabbcczz”)
(8)、定义一个方法,能够替换某字符串中的某个指定字串
(9)、定义一个方法,能够获取指定字符串长度。
*/ //定义一个方法,能完成字符串逆序输出的操作
+(NSString *) reverseOrder:(NSString *) str1; //定义一个方法,能删除某字符串中的指定字串
+(NSString *) deleteTheString:(NSString *) str1
inString:(NSString *) str2; //定义一个方法,能查找某字符串在某字符串中出现的次数
+(NSInteger) findNumberOfString:(NSString *) str1
inString:(NSString *) str2; //定义一个方法,能传入两个字符串,将这个字符串组合成一个新的对称字符串返回
+(NSString *) makeUpString:(NSString *) str1
andString:(NSString *) str2; //定义一个方法,能将原字符串进行小写转大写,大写转小写
+(NSString *) convertLetters:(NSString *) str1 andCase:(NSString *) mycase; //定义一个方法,能压缩传入的字符串
+(NSString *) compressString:(NSString *) str1; //定义一个方法,能对传入的字符串按照字母顺序进行排列
+(NSString *) theStringOrder:(NSString *) str1; //定义一个方法,能够替换某字符串中的某个指定字串
+(NSString *) replaceTheString:(NSString *) str1
fromString:(NSString *) str2
toString:(NSString *) str3; //定义一个方法,能够获取指定字符串长度
+(NSInteger) obtainTheLength:(NSString *) str1;
@end #import "MyStringTools.h" @implementation MyStringTools +(NSString *) reverseOrder:(NSString *) str1
{
NSMutableString *string = [NSMutableString stringWithString:str1];
NSMutableString *mutableString =[NSMutableString stringWithString:str1]; for (int i=; i<string.length; i++) {
//方法1
NSString *subStr1 = [string substringWithRange:NSMakeRange(i, )];
NSString *subStr2 = [string substringWithRange:
NSMakeRange(string.length - i-, )];
// 取长度和范围
NSRange range1 = [string rangeOfString:subStr1];
NSRange range2 = [string rangeOfString:subStr2]; [mutableString replaceCharactersInRange:range1 withString:subStr2];
[mutableString replaceCharactersInRange:range2
withString:subStr1];
}
return mutableString; //方法2
// NSString *tempStr = [string substringFromIndex:string.length-1];
//
// [string insertString:tempStr atIndex:i];
//
// [string deleteCharactersInRange:NSMakeRange(string.length-1,1)];
// }
// return string } +(NSString *) deleteTheString:(NSString *) str1
inString:(NSString *) str2
{
NSMutableString *string = [NSMutableString stringWithString:str2]; NSRange range = [string rangeOfString:str1]; if (range.location !=NSNotFound) {
[string deleteCharactersInRange:range];
}
else
NSLog(@"没有发现字符");
return string;
} +(NSInteger) findNumberOfString:(NSString *) str1
inString:(NSString *) str2
{
int i,count=; NSMutableString *string = [NSMutableString stringWithString:str2]; for (i=; i<string.length; i++) { NSRange range = [string rangeOfString:str1]; if (range.location !=NSNotFound) {
[string deleteCharactersInRange:range];
count++;
}
}
return count;
} +(NSString *) makeUpString:(NSString *) str1
andString:(NSString *) str2
{
NSMutableString *string = [NSMutableString stringWithString:str2];
[string appendString:str1]; for (NSInteger i=string.length-; i>=; i--) {
[string appendString:[string substringWithRange:NSMakeRange(i, )]]; }
return string;
} +(NSString *) convertLetters:(NSString *) str1 andCase:(NSString *) mycase
{
NSMutableString *string = [NSMutableString stringWithString:str1]; if ([mycase isEqualToString:@"大写"]) {
return [string uppercaseString];
}
else
return [string lowercaseString];
} +(NSString *) compressString:(NSString *) str1
{
int i;
NSMutableString *string = [NSMutableString stringWithString:str1];
NSMutableString *newString;
NSMutableString *newString1 = [NSMutableString stringWithString:@""]; for (i=; i<string.length; i++) { NSString *tempStr = [string substringWithRange:NSMakeRange(, )];
int count=; for (int j=; j<string.length; j++) { NSString *tempStr1 = [string substringWithRange:NSMakeRange(, )]; if ([tempStr1 isEqualToString:tempStr]) { [string deleteCharactersInRange:NSMakeRange(, )];
count++;
}
}
newString = [NSMutableString stringWithFormat:@"%d%@",count,tempStr];
[newString1 appendString:newString]; }
return newString1; } +(NSString *) theStringOrder:(NSString *) str1
{
NSMutableString *string = [NSMutableString stringWithString:str1]; for (int i=; i<string.length-; i++) {
for (int j=; j<string.length-; j++) { NSString *tempStr1=[string substringWithRange:NSMakeRange(j, )];
NSString *tempStr2=[string substringWithRange:NSMakeRange(j+, )]; NSRange range1 = [string rangeOfString:tempStr1];
NSRange range2 = [string rangeOfString:tempStr2]; if ([tempStr1 compare:tempStr2]==NSOrderedAscending) { [string replaceCharactersInRange:range2 withString:tempStr1];
[string replaceCharactersInRange:range1 withString:tempStr2];
}
}
}
return string;
} +(NSString *) replaceTheString:(NSString *) str1
fromString:(NSString *) str2
toString:(NSString *) str3
{
NSMutableString *string = [NSMutableString stringWithString:str2]; NSRange range = [string rangeOfString:str1];
[string replaceCharactersInRange:range withString:str3];
return string;
} +(NSInteger) obtainTheLength:(NSString *) str1
{
return str1.length;
} @end #import <Foundation/Foundation.h>
#import "MyStringTools.h" int main(int argc, const char * argv[]) {
@autoreleasepool { NSString *mystring=[NSString stringWithFormat:@"abcdef"]; NSLog(@"%@",[MyStringTools reverseOrder:mystring]); NSLog(@"%@",[MyStringTools deleteTheString:@"bc"
inString:mystring]); NSLog(@"%ld",[MyStringTools findNumberOfString:@"bc"
inString:@"abcdfebcbbc"]); NSLog(@"%@",[MyStringTools makeUpString:@"abcdef"
andString:@"gh"]); NSLog(@"%@",[MyStringTools convertLetters:@"aBcDeF"
andCase:@"大写"]); NSLog(@"%@",[MyStringTools compressString:@"hhfffkkkkkiinil"]); NSLog(@"%@",[MyStringTools theStringOrder:@"sadcbfw"]); NSLog(@"%@",[MyStringTools replaceTheString:@"sdf"
fromString:@"asdfghjkl"
toString:@"abc"]); NSLog(@"%lu",[MyStringTools obtainTheLength:@"qwert"]); }
return ;
}
OC Foundation框架—字符串操作方法及习题的更多相关文章
- OC Foundation框架—字符串
一.Foundation框架中一些常用的类 字符串型: NSString:不可变字符串 NSMutableString:可变字符串 集合型: 1) NSArray:OC不可变数组 NSMutableA ...
- Foundation框架—字符串
Foundation框架—字符串 一.Foundation框架中一些常用的类 字符串型: NSString:不可变字符串 NSMutableString:可变字符串 集合型: 1) NSArray:O ...
- 李洪强iOS之Foundation框架—字符串
Foundation框架—字符串 一.Foundation框架中一些常用的类 字符串型: NSString:不可变字符串 NSMutableString:可变字符串 集合型: 1) NSArray:O ...
- OC Foundation框架—结构体
一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文 ...
- iOS - OC Foundation 框架
前言 框架是由许多类.方法.函数和文档按照一定的逻辑组织起来的集合,以使研发程序更容易. Foundation 框架:为所有程序开发奠定基础的框架称为 Foundation 框架. Cocoa :是指 ...
- OC Foundation框架—集合
Foundation框架—集合 一.NSArray和NSMutableArray (一)NSArray不可变数组 (1)NSArray的基本介绍 NSArray是OC中使用的数组,是面向对象的,以面向 ...
- 14.Object-C--浅谈Foundation框架字符串NSString 与NSMutableString
OC的字符串时经常使用到的,今天我对于OC字符串做一个简单的总结,如果有错误之处,麻烦留言指正.感谢! NSString是一个不可变长度的字符串对象.表示它初始化以后,你不能改变该变量所分配的内存中的 ...
- [OC Foundation框架 - 20] 统计代码行数
注意: 1.变量名和函数名不要混淆调用 2.不要对文件夹进行文件的操作,没有权限 3.递归调用注意初始化变量 // // main.m // CodeLineCount // // Created ...
- [OC Foundation框架 - 13] NSValue
NSNumber能够包装基本数据类型称为OC对象,是因为继承了NSValue 包装结构体成OC对象 1.自带结构体 void value() { CGPoint point = CGPointMake ...
随机推荐
- Redis的两种持久化方式-快照持久化(RDB)和AOF持久化
Redis为了内部数据的安全考虑,会把本身的数据以文件形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存(redis)的里边,数据保存到硬盘的过程就称为“持久化”效果. redis有两 ...
- Linux下tomcat6.0与jdk安装
Linux下tomcat6.0与jdk安装 步骤如下: 1. 上传apache-tomcat-6.0.37.tar.gz和jdk-6u13-linux-i586.bin至/usr/local 给这两个 ...
- Eclipse中把Java工程修改成web工程
Eclipse中把Java工程修改成web工程 点击项目:右击:选择properties--输入project facets,将“Dynamic Web Module”打勾即可:
- [c/c++]指针(3)
在指针2中提到了怎么用指针申配内存,但是,指针申配的内存不会无缘无故地 被收回.很多poj上的题都是有多组数据,每次地数组大小会不同,所以要重新申请 一块内存.但是原来的内存却不会被收回,也是说2.3 ...
- Linux内存管理--用户空间和内核空间【转】
本文转载自:http://blog.csdn.net/yusiguyuan/article/details/12045255 关于虚拟内存有三点需要注意: 4G的进程地址空间被人为的分为两个部分--用 ...
- babun安装,整合到cmder
babun Babun的特性: 预装了Cygwin以及许多的插件 默认的命令行安装工具,没有管理员权限要求. 预装了 pact工具,一个高级的包管理器,类似 apt-get或yum xTerm-256 ...
- 明码|2018年蓝桥杯B组题解析第二题-fishers
标题:明码 汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛. 16点阵的字库把每个汉字看成是16x16个像素信息.并把这些信息记录在字节中. 一个字节可以存储8位信息,用32个字节就 ...
- nginx 安装手记
Nginx需要依赖下面3个包 1. gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ ) zlib-1.2.8.tar.gz 2. rewrite 模块需要 p ...
- python 编程基础练习 第一天
python 编程基础练习 第一天: 需求: 1.计算2的38次方,180*0.7输出(精度显示正常), x的y次方,数字倒序输出即345876输出678543,方法越多越好. 2.字符串处理: 1) ...
- DDSM数据处理之PngWithOverlay 框出病灶区域
修改代码路径 若overlay是某一侧的标注. 文件夹里某一侧的png 应该有对应 某一侧的overlay 这样一一对应才可以使得代码运行. 否则需要手动删除没有overlay的png图片. 左侧没有 ...