main.m
// main.m
// -OC-4
//
// Created by lanqs on 14/12/22.
// Copyright (c) 2014年 . All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Poll.h"
#import "Student.h"
#import "Dog.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
#pragma mark - 1、使用多种方式,取出符串“123-456-789-000”中的数字部分,组成一个新的字符串输出
// NSString *string = @"123-456-789-000";
// //1.遍历
// NSMutableString *string1 = [NSMutableString string];
// for (int i = 0; i < string.length; i ++) {
// char ch = [string characterAtIndex:i];
//
// if (ch >= '0' && ch <= '9') {
// [string1 appendFormat:@"%c",ch];
// }
// }
// NSLog(@"%@",string1);
// //2.替换
// NSString *string2 = [string stringByReplacingOccurrencesOfString:@"-" withString:@""];
// NSLog(@"%@",string2);
//
#pragma mark - 2、有一个数组,长度为20,里边存储的是1-20 的数,每个数不重复且为乱序;实现其过程(提示:arc4random()函数)
// NSMutableArray *array = [NSMutableArray array];
// while(1) {
// //随机函数
// NSInteger integer = arc4random()%20 + 1;
// NSString *string = [NSString stringWithFormat:@"%ld",integer];
//
// if (![array containsObject:string]) {
// [array addObject:string];
// }
// if (array.count == 20) {
// break;
// }
// }
// NSLog(@"%ld",array.count);
// NSLog(@"%@",array);
#pragma mark - 3、 1-100的NSString对象构成的100个元素数组,过滤50以下的字符串
// NSMutableArray *array = [NSMutableArray array];
// //遍历给数组赋值
// for (int i = 1; i <= 100; i ++) {
// NSString *string = [NSString stringWithFormat:@"%d",i];
// [array addObject:string];
//
// }
// //过滤元素 (将字符串转化为整型)
// for (int i = 1; i < 50; i ++) {
// NSString *string = [NSString stringWithFormat:@"%d",i];
// if ([string intValue] <50) {
// [array removeObject:string];
// }
// }
// NSLog(@"%@",array);
#pragma mark - 4、对一个已知的NSMutableArray数组进行冒泡排序
// NSMutableArray *array = [NSMutableArray arrayWithObjects:@"10",@"6",@"7",@"8",@"3",@"2",@"1", nil];
//
// for (int i = 0; i < array.count; i ++) {
// int a = [[array objectAtIndex:i] intValue];
// for (int j = i; j < array.count; j ++) {
// int b = [[array objectAtIndex:j] intValue];
// if (a > b) {
// //我嚓,有自带的交换
// [array exchangeObjectAtIndex:i withObjectAtIndex:j];
// }
//
// }
//
// }
// NSLog(@"%@",array);
#pragma mark - 1、 创建一个Student类,将所有学员信息存放进一个数组,每个学员存为一个字典(以姓名作为key,信息作为value),里面包含姓名,年龄,性别,身份证号。
// Student *student = [[Student alloc]initWithName:@"student1" age:11 gender:@"man" code:@"510681199310033513"];
//
// //数组中学生的信息
// NSLog(@"%@",[student studentArray1]);
//
// NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
// [dictionary addEntriesFromDictionary:[student studentDictionary]];
// //字典中的信息
// NSLog(@"%@",dictionary);
#pragma mark - 2、 写一个方法,随机选取2名学员查看其姓名,并计算他们年龄的差值
// Student *student1 = [[Student alloc]initWithName:@"student1" age:20 gender:@"man" code:@"510681199310033513"];
// Student *student2 = [[Student alloc]initWithName:@"student2" age:17 gender:@"man" code:@"510681199310033513"];
// [Student showNameAndShowAgeDifferent:student1 anotherstudent:student2];
#pragma mark - 3、 遍历所有学员信息,从学员中挑出是三好学生并且年龄最小的一位(三好学生:属于学生信息中的一部分,不是查看成绩所得,可在学生信息中添加一项,用来标记当前学生是否为三号学生)
// Student *student1 = [[Student alloc]initWithName:@"student1" age:20 gender:@"man" code:@"510681199310033513"];
// Student *student2 = [[Student alloc]initWithName:@"student2" age:19 gender:@"man" code:@"510681199310033513"];
// Student *student3 = [[Student alloc]initWithName:@"student3" age:18 gender:@"man" code:@"510681199310033513"];
// Student *student4 = [[Student alloc]initWithName:@"student4" age:17 gender:@"man" code:@"510681199310033513"];
// //三好学生为1,不是三好学生为0
// student1.flag = 1;
// student2.flag = 0;
// student3.flag = 0;
// student4.flag = 1;
//
// NSMutableArray *mutablearray = [NSMutableArray array];
// NSArray *array = [NSArray arrayWithObjects:student1,student2,student3,student4, nil];
// //查看是不是三好学生
// for (int i = 0; i < [array count]; i ++) {
// //强制类型转换
// NSInteger integer = ((Student *)[array objectAtIndex:i]).flag;
// if (integer == 1) {
// [mutablearray addObject:[array objectAtIndex:i]];
// }
//
// }
// //年龄排序
// for (int i = 0; i < mutablearray.count; i ++) {
// NSInteger age1 = ((Student *)[mutablearray objectAtIndex:i]).age;
// for (int j = i; j < mutablearray.count; j ++) {
// NSInteger age2 = ((Student *)[mutablearray objectAtIndex:j]).age;
// if (age1 > age2) {
// NSInteger temp = age1;
// ((Student *)[mutablearray objectAtIndex:i]).age = age2;
// ((Student *)[mutablearray objectAtIndex:j]).age = temp;
// }
// }
//
//
// }
// //排序过后第一个就是最小的
// NSLog(@"%@",[mutablearray firstObject]);
#pragma mark - 5、(扩展题)创建一个Dog类,该Dog有成员变量_name,_age;创建五个dog对象,将dog对象放入数组中,将该数组通过name字段进行排序,如果name相同时,按照age字段进行排序;
Dog *dog1 = [[Dog alloc]initWithNama:@"dog1" age:19];
Dog *dog2 = [[Dog alloc]initWithNama:@"dog2" age:17];
Dog *dog3 = [[Dog alloc]initWithNama:@"dog3" age:15];
Dog *dog4 = [[Dog alloc]initWithNama:@"dog2" age:13];
Dog *dog5 = [[Dog alloc]initWithNama:@"dog5" age:10];
NSMutableArray *array = [NSMutableArray arrayWithObjects:dog1.name,dog2.name,dog3.name,dog4.name,dog5.name, nil];
//只判断了名字,没判断年龄
NSArray *array1 = [array sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@",array1);
NSMutableArray *array2 = [NSMutableArray array];
[array2 addObjectsFromArray:array1];
NSNumber *number1 = [NSNumber numberWithLong:dog1.age];
NSNumber *number2 = [NSNumber numberWithLong:dog2.age];
NSNumber *number3 = [NSNumber numberWithLong:dog3.age];
NSNumber *number4 = [NSNumber numberWithLong:dog4.age];
NSNumber *number5 = [NSNumber numberWithLong:dog5.age];
NSArray *array3 = [NSArray arrayWithObjects:number1,number2,number3,number4,number5, nil];
//年龄排了
NSArray *array4 = [array3 sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@",array4);
// 晕了。。。
}
return 0;
}
Student.h
//
// Student.h
// -OC-4
//
// Created by lanqs on 14/12/22.
// Copyright (c) 2014年 . All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Student : NSObject{
NSString *_name;//姓名
NSInteger _age;//年龄
NSString *_gender;//性别
NSString *_code;//身份证
NSInteger _flag;//标示
}
@property (retain,nonatomic) NSString *name;
@property (assign,nonatomic) NSInteger age;
@property (retain,nonatomic) NSString *gender;
@property (retain,nonatomic) NSString *code;
@property (assign,nonatomic) NSInteger flag;
- (id)initWithName:(NSString *)name age:(NSInteger)age gender:(NSString *)gender code:(NSString *)code;
+ (NSArray *)studentArray:(Student *)student;
- (NSArray *)studentArray1;
- (NSDictionary *)studentDictionary;
+ (void)showNameAndShowAgeDifferent:(Student *)student anotherstudent:(Student *)anotherstudent;
@end
Student.m
//
// Student.m
// -OC-4
//
// Created by lanqs on 14/12/22.
// Copyright (c) 2014年 . All rights reserved.
//
#import "Student.h"
@implementation Student
- (id)initWithName:(NSString *)name age:(NSInteger)age gender:(NSString *)gender code:(NSString *)code{
self = [super init];
if (self) {
_name = name;
_age = age;
_gender = gender;
_code = code;
}
return self;
}
+ (NSArray *)studentArray:(Student *)student{
NSString *string = [NSString stringWithFormat:@"%ld",student.age];
NSArray *array = [NSArray arrayWithObjects:student.name,string,student.gender,student.code,nil];
return array;
}
- (NSArray *)studentArray1{
NSString *string = [NSString stringWithFormat:@"%ld",_age];
NSArray *array = [NSArray arrayWithObjects:_name,string,_gender,_code,nil];
return array;
}
//字典(以姓名作为key,信息作为value)
- (NSDictionary *)studentDictionary{
NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
[dictionary setObject:[self studentArray1] forKey:_name];
return dictionary;
}
+ (void)showNameAndShowAgeDifferent:(Student *)student anotherstudent:(Student *)anotherstudent{
NSLog(@"name = %@, name = %@",student.name,anotherstudent.name);
NSLog(@"第一个学生和第二个学生的年龄差为:%ld",student.age - anotherstudent.age);
}
- (NSString *)description{
return [NSString stringWithFormat:@"name = %@,age = %ld,gender = %@,code = %@",_name,_age,_gender,_code];
}
@end