您的位置:首页 > 其它

OC Foundation框架—字符串操作方法及习题

2015-12-11 20:56 375 查看
#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 = @"123456789";
NSString *str2 = [[NSString alloc] initWithFormat:@"%d4567",3];
//        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:3];
NSLog(@"%@",newStr1);
NSString *newStr2 = [str1 substringToIndex:3];
NSLog(@"%@",newStr2);
NSString *newStr3 = [str1 substringWithRange:NSMakeRange(3, 4)];
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",2];

NSMutableString *muStr2 = [[NSMutableString alloc]
initWithString:@"123"];

NSMutableString *muStr3 = [[NSMutableString alloc]
initWithCapacity:10];

// 类方法
NSMutableString *muStr4 = [NSMutableString stringWithFormat:@"4%d6",5];

NSMutableString *muStr5 = [NSMutableString stringWithString:@"123"];

NSMutableString *muStr6 = [NSMutableString stringWithCapacity:10];

//增(3种)

[muStr1 appendFormat:@"%d",456];
NSLog(@"%@",muStr1);

[muStr2 appendString:@"789"];
NSLog(@"%@",muStr2);

[muStr3 insertString:@"abcdefghijklmn" atIndex:0];
NSLog(@"%@",muStr3);

[muStr4 insertString:@"abcdefghijklmn" atIndex:2];
NSLog(@"%@",muStr4);

//删除
[muStr5 deleteCharactersInRange:NSMakeRange(2, 1)];
NSLog(@"%@",muStr5);

//改
[muStr6 replaceCharactersInRange:NSMakeRange(0, 0) withString:@"1234567890"];
NSLog(@"%@",muStr6);

[muStr5 replaceCharactersInRange:NSMakeRange(0, 1) 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=0; i<string.length; i++) {
//方法1
NSString *subStr1 = [string substringWithRange:NSMakeRange(i, 1)];
NSString *subStr2 = [string substringWithRange:
NSMakeRange(string.length - i-1, 1)];
// 取长度和范围
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=0;

NSMutableString *string = [NSMutableString stringWithString:str2];

for (i=0; 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-1; i>=0; i--) {
[string appendString:[string substringWithRange:NSMakeRange(i, 1)]];

}
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=0; i<string.length; i++) {

NSString *tempStr = [string substringWithRange:NSMakeRange(0, 1)];
int count=0;

for (int j=0; j<string.length; j++) {

NSString *tempStr1 = [string substringWithRange:NSMakeRange(0, 1)];

if ([tempStr1 isEqualToString:tempStr]) {

[string deleteCharactersInRange:NSMakeRange(0, 1)];
count++;
}
}
newString = [NSMutableString stringWithFormat:@"%d%@",count,tempStr];
[newString1 appendString:newString];

}
return newString1;

}

+(NSString *) theStringOrder:(NSString *) str1
{
NSMutableString *string = [NSMutableString stringWithString:str1];

for (int i=0; i<string.length-1; i++) {
for (int j=0; j<string.length-1; j++) {

NSString *tempStr1=[string substringWithRange:NSMakeRange(j, 1)];
NSString *tempStr2=[string substringWithRange:NSMakeRange(j+1, 1)];

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 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: