有关截取歌词中字符串的作业(用工程实现)
来源:互联网 发布:恐龙特急克塞号 知乎 编辑:程序博客网 时间:2024/04/28 18:46
运行部分代码:
import “ViewController.h”
import “SongObj.h”
@interface ViewController (){
NSArray *dataSource;
}
@property (weak, nonatomic) IBOutlet UITableView *table;
@end
@implementation ViewController
(void)viewDidLoad {
[super viewDidLoad];self.table.dataSource = self;
self.table.delegate = self;
NSString *urlString = @”http://doido.sinaapp.com/qmusic/api.php?song=九月&singer=许巍”;
urlString = [urlString stringByAddingPercentEscapesUsingEncoding:4];
NSURL *url = [NSURL URLWithString:urlString];
NSData *data = [NSData dataWithContentsOfURL:url];
NSString *string = [[NSString alloc] initWithData:data encoding:4];
SongObj *songObj = [SongObj songWithContentString:string];
dataSource = songObj.lrc;
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return dataSource.count;
}
-(UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *identifier = @”cell”;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier];
}
NSDictionary *dic = dataSource[indexPath.row];
for (NSString *key in dic) {
cell.textLabel.text = dic[key];
cell.detailTextLabel.text = key;
}
return cell;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
声明部分代码:
import
import “SongObj.h”
@implementation SongObj
+(SongObj )songWithContentString:(NSString )string{
SongObj *songObj = [SongObj new];
// [songObj handleWithStringNew:string];
[songObj handleWithString:string WithObj:songObj];
return songObj;
}
-(void)handleWithString:(NSString )string WithObj:(SongObj )songObj{
NSMutableString *mString = [NSMutableString stringWithString:string];NSMutableArray *array = [NSMutableArray array];NSRange range = [mString rangeOfString:@","];while (range.location != NSNotFound) { NSString *subString = [mString substringWithRange:NSMakeRange(0, range.location)]; NSRange subRange = [subString rangeOfString:@":"]; NSString * targetString = [subString substringWithRange:NSMakeRange(subRange.location+1, subString.length-subRange.location-1)]; [array addObject:targetString]; [mString deleteCharactersInRange:NSMakeRange(0, range.location+1)]; range = [mString rangeOfString:@","];}songObj.ret = [array objectAtIndex:0];songObj.song = [array objectAtIndex:1];songObj.singer = [array objectAtIndex:2];songObj.link = [array objectAtIndex:3];songObj.lrc = [self handleWithString:mString];
}
-(NSArray )handleWithString:(NSMutableString )mString{
NSMutableArray *mArray = [NSMutableArray array];
NSRange range = [mString rangeOfString:@”]”];
NSString *subString = [mString substringWithRange:NSMakeRange(0, range.location)];
NSRange subRange = [subString rangeOfString:@”ti”];
if (subRange.location != NSNotFound) {
NSMutableDictionary *mDic = [NSMutableDictionary dictionary];
[mDic setValue:[subString substringWithRange:NSMakeRange(subRange.location+subRange.length+1, subString.length-(subRange.location+subRange.length+1))] forKey:@”ti”];
[mArray addObject:mDic];
}
[mString deleteCharactersInRange:NSMakeRange(0, range.location+1)];//添加 ar range = [mString rangeOfString:@"]"];subString = [mString substringWithRange:NSMakeRange(0, range.location)];subRange = [subString rangeOfString:@"ar"];if (subRange.location != NSNotFound) { NSMutableDictionary *mDic = [NSMutableDictionary dictionary]; [mDic setValue:[subString substringWithRange:NSMakeRange(subRange.location+subRange.length+1, subString.length-(subRange.location+subRange.length+1))] forKey:@"ar"]; [mArray addObject:mDic];}[mString deleteCharactersInRange:NSMakeRange(0, range.location+1)];//添加 alrange = [mString rangeOfString:@"]"];subString = [mString substringWithRange:NSMakeRange(0, range.location)];subRange = [subString rangeOfString:@"al"];if (subRange.location != NSNotFound) { NSMutableDictionary *mDic = [NSMutableDictionary dictionary]; [mDic setValue:[subString substringWithRange:NSMakeRange(subRange.location+subRange.length+1, subString.length-(subRange.location+subRange.length+1))] forKey:@"al"]; [mArray addObject:mDic];}[mString deleteCharactersInRange:NSMakeRange(0, range.location+1)];[mString deleteCharactersInRange:[mString rangeOfString:@"["]];range = [mString rangeOfString:@"["];while (range.location != NSNotFound) { subString = [mString substringWithRange:NSMakeRange(0, range.location)]; subRange = [mString rangeOfString:@"]"]; NSString *key = [subString substringWithRange:NSMakeRange(0, subRange.location)]; NSString *value = [subString substringWithRange:NSMakeRange(subRange.location+1, subString.length-(subRange.location+1))]; NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; [dictionary setValue:value forKey:key]; [mArray addObject:dictionary]; [mString deleteCharactersInRange:NSMakeRange(0, range.location+1)]; range = [mString rangeOfString:@"["];}subRange = [mString rangeOfString:@"]"];NSString *key = [mString substringWithRange:NSMakeRange(0, subRange.location)];NSString *value = [mString substringWithRange:NSMakeRange(subRange.location+1, subString.length-(subRange.location+1))];NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];[dictionary setValue:value forKey:key];[mArray addObject:dictionary];return mArray;
}
@end
主函数(main。m)部分代码:#import
import “AppDelegate.h”
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
- 有关截取歌词中字符串的作业(用工程实现)
- 有关提取歌词中字符串的作业
- SQL中实现截取字符串的函数
- 有关C#中字符串拼接和截取
- C#有关字符串的分割,替换,截取
- C#中实现截取固定长度字节数的字符串
- jquery 截取字符串的实现
- JS实现字符串的截取
- 播放器的歌词功能实现中。。。
- Android中歌词显示的实现
- Java中字符串的截取
- shell中字符串的截取
- SHELL中字符串的截取
- java中字符串的截取
- jsp中字符串的截取
- 代码中字符串的截取
- JavaScript中字符串的截取
- 有关字符串截取的和子父节点的查询
- 汇编寄存器笔记
- hdoj 1181 变形课(深搜)
- Mybatis 源码解析(三) - properties标签
- POJ-3620Avoid The Lakes (搜索)
- UVA10815 Andy's First Dictionary
- 有关截取歌词中字符串的作业(用工程实现)
- spark资料汇总
- 百度地图sdk开发笔记
- My 英语 and 思想 blog
- MFC类之间获取指针的方法
- HDU 1509 Windows Message Queue(优先队列)
- 重学java23种设计模式(15)解释器模式
- 字符串分割
- ACM 概率DP hdu4336