//
// HtmlManger.h
// OC6-网址分割
//
// Created by qianfeng on 15/6/17.
// Copyright (c) 2015年 qianfeng. All rights reserved.
// #import <Foundation/Foundation.h>
#import "HtmlItem.h"
@interface HtmlManger : NSObject
{
NSMutableArray *_itemList;
} -(id)init;
-(void)parseHtmlString:(NSString *)aString;
-(void)showItemList;
+(void)userInterface;
-(void)addItemToItemList:(HtmlItem *)aItem;
@end //
// HtmlManger.m
// OC6-网址分割
//
// Created by qianfeng on 15/6/17.
// Copyright (c) 2015年 qianfeng. All rights reserved.
// #import "HtmlManger.h"
@implementation HtmlManger
-(id)init
{
if(self=[super init])
{
_itemList =[NSMutableArray array]; }
return self;
}
-(void)parseHtmlString:(NSString *)aString
{
NSArray *itemArray =[aString componentsSeparatedByString:@"&"];
for (NSString *itemString in itemArray) {
NSArray *items =[itemString componentsSeparatedByString:@"="];
HtmlItem *item=[[HtmlItem alloc] init];
item.key=[items firstObject];
if([[items lastObject] isEqualToString:@""])
{
item.value=nil;
}
else{
item.value=[items lastObject];
}
[self addItemToItemList:item];
}
} -(void)addItemToItemList:(HtmlItem *)aItem
{
NSInteger i;
NSInteger len =[self->_itemList count];
for ( i=;i<len;i++) {
if([[[_itemList objectAtIndex:i] key] compare:aItem.key]==NSOrderedSame)
{
break;
}
} if(i!=len)
{
[_itemList replaceObjectAtIndex:i withObject:aItem];
}
else{
[_itemList addObject:aItem];
}
}
-(void)showItemList
{
for (HtmlItem *item in _itemList) {
NSLog(@"%@",item);
}
}
+(void)userInterface
{
char str[]={};
scanf("%s",str);
HtmlManger *manger =[[HtmlManger alloc] init];
[manger parseHtmlString:[NSString stringWithUTF8String:str]];
[manger showItemList]; }
@end
//
// HtmlItem.h
// OC6-网址分割
//
// Created by qianfeng on 15/6/17.
// Copyright (c) 2015年 qianfeng. All rights reserved.
// #import <Foundation/Foundation.h> @interface HtmlItem : NSObject
{
NSString *_key;
NSString *_value;
}
@property (copy,nonatomic) NSString *key;
@property (copy,nonatomic) NSString *value;
@end //
// HtmlItem.m
// OC6-网址分割
//
// Created by qianfeng on 15/6/17.
// Copyright (c) 2015年 qianfeng. All rights reserved.
// #import "HtmlItem.h" @implementation HtmlItem
-(NSString *)description
{
return [NSString stringWithFormat:@"%@:%@",self.key,self.value]; }
@end
//
// main.m
// OC6-网址分割
//
// Created by qianfeng on 15/6/17.
// Copyright (c) 2015年 qianfeng. All rights reserved.
// #import <Foundation/Foundation.h>
#import "HtmlManger.h"
int main(int argc, const char * argv[]) {
@autoreleasepool { [HtmlManger userInterface];
//int a=23;
//int const *f const =&a;
}
return ;
}

OC6-网址分割的更多相关文章

  1. web框架开发-路由控制

    URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的某个URL调用哪一段逻辑代码 ...

  2. python3里的Urllib库

    首先Urllib是python内置的HTTP请求库. 包括以下模块: urllib.request 请求模块: urllib.error 异常处理模块: urllib.parse url解析模块: u ...

  3. 短网址资料-nginx非root用户启动-systemctl启动脚本-分割root权限

    https://www.cnblogs.com/aspnethot/articles/3492191.htmlhttps://www.cnblogs.com/aspnethot/articles/34 ...

  4. 详解Node解析URL网址

    前提给大家声明一下,我操作的环境是Mac终端下操作的.(前提是你先要下载好node.js) 说道URL 恐怕都不陌生,但是要说URL,就 必须先说下URI URI是统一资源标识符,是一个用于标识某一互 ...

  5. 使用PHP的正则抓取页面中的网址

    最近有一个任务,从页面中抓取页面中所有的链接,当然使用PHP正则表达式是最方便的办法.要写出正则表达式,就要先总结出模式,那么页面中的链接会有几种形式呢?   链接也就是超级链接,是从一个元素(文字. ...

  6. linux:主机规划和磁盘分割

    1>.在linux系统中,每个装置都被装成一个档案来对待: 2>.各硬体装置在linux当中的档案名:SATA介面的硬碟的档案名为/dev/sd[a-d];在linux中,几乎所以的硬体装 ...

  7. PCL—低层次视觉—点云分割(RanSaC)

    点云分割 点云分割可谓点云处理的精髓,也是三维图像相对二维图像最大优势的体现.不过多插一句,自Niloy J Mitra教授的Global contrast based salient region ...

  8. 笔记︱图像语义分割(FCN、CRF、MRF)、论文延伸(Pixel Objectness、)

    图像语义分割的意思就是机器自动分割并识别出图像中的内容,我的理解是抠图- 之前在Faster R-CNN中借用了RPN(region proposal network)选择候选框,但是仅仅是候选框,那 ...

  9. javaScript识别网址文本并转为链接文本

    最近项目有个需求:用户之间发送消息时,如果发送者输入的信息中含有网址文本,要在接受者界面中显示网址链接,点击该链接直接跳转到网页.这个功能和 QQ 发送网址文本的效果非常像,可以说是一模一样的. 思路 ...

  10. MySql分割字符串【存储过程】

    MYSql没有表变量,通过函数无法返回表. 参考网址:https://bbs.csdn.net/topics/330021055 DELIMITER $$ USE `数据库`$$ DROP PROCE ...

随机推荐

  1. java中的hashcode和euqals的区别和联系

    一.equals方法的作用 1.默认情况(没有覆盖equals方法)下equals方法都是调用Object类的equals方法,而Object的equals方法主要用于判断对象的内存地址引用是不是同一 ...

  2. Maven3.2创建webapp项目过程中问题以及解决方案

    用maven组件来创建web项目,maven的好处一大堆,但是在创建项目的时候问题也很多,诸多不顺,网上找了很多资料,貌似都没能解决问题. 环境:jdk1.7.0_80,eclipse4.4,mave ...

  3. w3cmark前端精彩博文周报 10.20-10.27

    w3cmark 官方Q群 145423956 | 官方微博 @w3cmark 自从最近微博屏蔽了我的站点域名,就很懒了.毕竟和不爽,一个纯技术站点还被认为不安全链接,还申诉无门,那些所谓的客服都是自动 ...

  4. 彩票APP将演绎“快鱼吃慢鱼”的发展轨迹

    思科CEO钱伯斯有句名言,叫"快鱼吃慢鱼",他觉得"在Internet经济下,大公司不一定打败小公司,可是快的一定会打败慢的."对此观点,笔者表示部分认同,首先 ...

  5. web app页面要求

    代码: <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum- ...

  6. Swift 3.0 的 open,public,internal,fileprivate,private 关键字

      import Foundation   /// final的含义保持不变 public final class FinalClass { }   // 这个类在ModuleA的范围外是不能被继承的 ...

  7. EasyBCD 2.2中文版安装变色龙wowpc.iso详细教程(适用各个版本)

    第一章 安装变色龙引导本章节提供3种安装方案,请自行选择 1.使用 Windows 版变色龙安装器安装适用引导方案:BIOS+MBR第1步:下载 Chameleon Install 2.2svn228 ...

  8. MySQL内存----使用说明全局缓存+线程缓存) 转

    MySQL内存使用说明(全局缓存+线程缓存) 首先我们来看一个公式,MySQL中内存分为全局内存和线程内存两大部分(其实并不全部,只是影响比较大的 部分): per_thread_buffers=(r ...

  9. 根据Entity Framework6.X 数据生成代码(仅获取表名)

    近来学习ASP.NET MVC ,一直在看韩迎龙(Kencery)的ASP.NET MVC+EF框架+EasyUI实现权限管理.在第九节(TT模板的学习)卡住了,作者使用EF5.0做数据源,而我使用的 ...

  10. 项目源码--Android3D影音播放器源码

      下载源码   技术要点: 1.本地音乐管理 2.音频流的解码 3. UI控件的综合使用 4. 视频流的解码 5. 动态更换皮肤 6. 3D效果的实现 7. 源码带详细的中文注释 ...... 详细 ...