OC6-网址分割

//
//  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=0;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[100]={};
    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 0;
}
时间: 2024-10-12 17:51:39

OC6-网址分割的相关文章

OC-Foundation框架整理

/* foundation框架是其他所有IOS框架的基础.foundation框架包含了很多开发中常用的数据类型 1.结构体 2.数字类 3.字符串类 4.集合类 5.日期类 ... */ /* NSRange 表示范围 typedef struct _NSRange { NSUInteger location; NSUInteger length; } NSRange; */ //查找某个字符串在另一个字符串中的位置 NSString *[email protected]"xxoo"

Linux必会原理之输入网址到看到页面内容原理

用户从浏览器输入网址到页面显示,细分了一下基本上由八大快原理组成,他们是:dns解析原理.TCP三次连接.http请求数据包.数据包的封装.数据包的解封装.集群内部的一个请求.服务器的响应报文.四次断开> dns解析原理:当用户在客户端输入网址后,客户端会先访问本地的hosts文件和dns缓存,我们hosts一般都是做测试使用来配置的.所以设备第一访问这个网址,在本地的hosts和local是没有这个解析的,这个时候会向LDNS(也交本地dns寻求解析),如果lDNS这里有记录,就会反馈给客户端

【网址】数学网址大全

中文数学专业网站:博士家园http://www.math.org.cnhttp://www.bossh.net 数理逻辑.数学基础:http://www.disi.unige.it/aila/eindex.html意大利逻辑及其应用协会的主页,包括意大利数理逻辑领域的相关内容. http://www.plenum.com/title.cgi?2110<代数与逻辑>,<西伯利亚代数与逻辑期刊>的翻译版,荷兰的Kluwer学术出版社提供其在线服务. http://forum.swart

http协议,关于网址的小知识

昨天晚上搜c#读取网页文件的时候,无意中学到了这么一个知识: 在网址上有的时候我们会看到?或者&等多种奇怪的符号,那这些都到底是什么意思呢?! 下面听我讲解下! ?:?指的是分割网页地址于参数的,可以理解为?就是个分割符,前面是网页真正的地址,而后面则是需要上传的参数. &:当多个参数并列上传时,则需要加上这个符号! %:这个是一种加密方式,它不会单独出现,而是这么出现:

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

点云分割 点云分割可谓点云处理的精髓,也是三维图像相对二维图像最大优势的体现.不过多插一句,自Niloy J Mitra教授的Global contrast based salient region detection出现,最优分割到底鹿死谁手还不好说.暂且不论他开挂的图像处理算法,先安心做一个PCL吹~ 点云分割的目的提取点云中的不同物体,从而实现分而治之,突出重点,单独处理的目的.而在现实点云数据中,往往对场景中的物体有一定先验知识.比如:桌面墙面多半是大平面,桌上的罐子应该是圆柱体,长方体

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

最近有一个任务,从页面中抓取页面中所有的链接,当然使用PHP正则表达式是最方便的办法.要写出正则表达式,就要先总结出模式,那么页面中的链接会有几种形式呢? 链接也就是超级链接,是从一个元素(文字.图片.视频等)链接到另一个元素(文字.图片.视频等).网页中的链接一般有三种,一种是绝对URL超链接,也就是一个页面的完整路径:另一种是相对URL超链接,一般都链接到同一网站的其他页面:还有一种是页面内的超链接,这种一般链接到同一页面内的其他位置. 搞清楚了链接的种类,就知道要抓链接,主要还是绝对URL

九章算法面试题48 分割回文串

九章算法官网-原文网址 http://www.jiuzhang.com/problem/48/ 题目 对于给定字符串,求最少需要几次划分,能够将字符串划分为若干子串,每个子串都是一个回文串.如abaab,需要至少1次划分,将字符串划分为:a|baab,每个部分均为回文串. 解答 这是一道典型的在字符串上进行分割的动态规划的问题.一般的状态表示方法如下:f[i]表示将前i个字符组成的子串进行划分,能够最少划分为多少个串,每个串都是回文串.那么有状态转移方程:f[i] = MIN(f[j] + 1,

Apache日志分割&amp;日志分析

Apache日志分割 随着网站的访问量越来越大,默认情况下Apache服务器产生的单个日志文件也会越来越大,如果不采用日志分割,当日志文件不断增大时,当占用太大的磁盘空间时将会被系统删除,而且随着日志文件的增大,对于管理员对Apache服务器进行访问分析.网络安全监察.网络运行状况监控等操作带来较大难度,因此管理这些海量日志对网站的意义重大. 实验描述: 完成对Apache的日志分割 本实验采用Apache2.2版本 服务器IP:192.168.100.107 所需服务:httpd.DNS 服务

sscanf()分割字符数组

sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源. 头文件: #include<stdio.h> 或者 #include <cstdio> 用法: 注意:首先应该注意的是 sscanf()只能对字符数组进行操作,但是不能对string字符串操作 一.读入指定数据: https://www.cnblogs.com/tiancun/p/7831100.html 二.分割数据: (1)最简单的其实是默认的用法,比如 sscanf

怎样分割一个多页面的PDF文件

我们办公族在工作中最苦恼的就是遇到格式容量过大的文件,或者是别人发送过来的PDF文件,不仅文件大而且内容并不都是我们想要的.所以我们还要进行二次处理,但是PDF文件不能直接编辑,还要借助工具来完成.今天小编就给大家分享一个好用的pdf分割工具,希望可以帮助大家.使用工具:迅捷PDF转换器1.如果大家以前没有使用过这种类似的工具,可以先在浏览器上面搜索PDF转换器,找到相对用的网址,下载并安装到电脑桌面上.2.安装完成后,在桌面上打开,进入软件首页面,可以看到页面上方有很多功能,这时候我们就选择我