import java.util.*;
import java.io.*;
public class ProURL{
private HashMap map;
public ProURL(){
this.map=new HashMap();
}
private String parseURL(String fPath){
String rFile="rurl.txt";
try{
FileReader fr=new FileReader(fPath);
BufferedReader br=new BufferedReader(fr);
FileWriter fw=new FileWriter(rFile);
BufferedWriter bw=new BufferedWriter(fw);
String str;
while((str=br.readLine())!=null){
StringBuffer tmp;
String pre;
String[] array=str.split("/");
int len=array.length;
pre=array[0]+"//";
try{
for(int i=2;i<len-1;i++){
tmp.append(array[i]);
String strTmp=tmp.toString();
strTmp=strTmp+"\n";
bw.write(strTmp);
pre=strTmp;
}
bw.flush();
bw.close();
fw.close();
}catch(Exception ex){
}
}
}catch(Exception ex){
ex.printStackTrace();
}
return rFile;
}
private void addURL(String url){
if(map.containsKey(url)){
int c=((Integer)map.get(url)).intValue()+1;
map.put(url,new Integer(c));
}else{
map.put(url,1);
}
}
public void process(String fPath){
String rPath=parseURL(fPath);
FileReader fr=new FileReader(rPath);
BufferedReader br=new BufferedReader(fr);
String url;
while((url=br.readLine())!=null){
this.addURL(url);
}
fr.close();
br.close();
}
public void main(String[] args){
ProURL pro=new ProURL();
String fPath="url.txt";
pro.process(fPath);
}
}
shell命令:
awk -F/ '{pre=$1"//";i=3; while(i<NF){str=pre$i"/"; count[str]++;i++;}} END{for(url in count){ print url,count[url];}}' urlfile
看来shell还是强大的。
分享到:
相关推荐
- 分词后,我们使用Python的`collections.Counter`类来计算每个词的出现频率。`Counter`可以方便地统计元素的个数,并返回一个字典格式的对象,键为元素,值为出现次数。 2. **Django视图**: - 视图函数`search....
- **超链接的展示**:在Web页面中,使用`<a href="URL">链接文本</a>`可以创建一个指向指定URL的超链接。如果链接文本就是URL本身,则直接点击该文本即可访问相应的网页。 - **正确答案**:C. 新浪(超链接) ### ...
- 集合:使用`for i in set:` 结构遍历集合中的每个元素。 ### 8. 触发器的设计 - **知识点**: 如果需要监视成绩表中数据的插入和更新,并在成绩超过100分时自动将其修正为100,应该使用**BEFORE**触发器。 - **...
- **解析**: DDMS中的Log信息共分为 **5 (C)** 个级别。 **4. 关于Android系统的优势** - **知识点**: Android系统的特性与优势。 - **开放性**: 开源操作系统,允许开发者自由修改源代码。 - **与运营商的关系*...
- **查询视图**: 每个查询都有三种视图,即设计视图、数据表视图和SQL视图。 - **选项解析**: - A. 设计视图 - B. 模板视图 (不存在的视图类型) - C. 数据表视图 - D. SQL视图 **正确答案**: B. 模板视图 ...
这条语句的意思是从“学生”表中选择那些没有出现在“学生选课”表中的学生记录。 - **扩展**: `NOT IN`子句用于排除指定集合中的值,适用于简单的排除条件。 #### 8. 合法的数值型常量 - **知识点**: 在编程语言...
- **主键约束**:用于确保表中每个记录的唯一性,通过`PRIMARY KEY`声明,一个表只能有一个主键,但可以由多个字段组成,且主键字段不允许为空。 - **唯一约束**:同样保证记录的唯一性,使用`UNIQUE`关键字,一个...
- **解释**:二进制数(1111)2转换为十进制数的方法是从右至左每个位上的数字乘以2的幂次方并求和,即\(1*2^0 + 1*2^1 + 1*2^2 + 1*2^3 = 15\)。 ### 9. Access中的自动窗体向导 - **知识点**:“新奇式”窗体不是...
- **第二范式**:确保表中的每个非键列都完全依赖于主键。 - **第三范式**:消除传递依赖关系。 ### Nosql - **特点**:非关系型数据库,适合大数据和实时应用。 - **类型**:包括键值存储、文档数据库、图形...
接下来,我们将对每个问题及其答案进行详细解析。 1. **万维网的基础** - **题目**:万维网WWW以何种方式提供世界范围的多媒体信息服务? - **选项**:A.文本 B.信息 C.超文本 D.声音 - **正确答案**:C. 超文本...
- 提供的例子 `http:\\www、hotmail、com\p1、html` 中包含了非法字符和格式错误,因此不是一个合法的 URL。 ### 13. 集合中保存无重复元素且排序 **知识点说明:** - `TreeSet` 是一种基于红黑树实现的集合,它...
- 二进制编码中的每一位称为比特(bit),每个字节由8个比特组成。 - 通过不同的比特组合,可以表示各种不同类型的数据。 ### 16. 设置字体样式 **题目描述:** 用来设置粗体字的属性是 A. FontItalic B. FontSize...
- **基数**:指的是一套数制系统中所使用的不同数字符号的个数。 - **位权**:指的是数制中每一位数值所代表的实际值大小。 #### Windows文件属性查看 - **正确理解**:在Windows操作系统中,用户可以通过右键点击...
- 每个class为`one`的`div`父元素下的最后一个子元素。 - 如果class为`one`的`div`父元素下的仅仅只有一个子元素,那么选中这个子元素。 - **表单对象选择器**: - 获取表单元素的两种方式:通过ID选择器或类...
2.6 处理文件中的每个词 68 2.7 随机输入/输出 70 2.8 更新随机存取文件 71 2.9 从zip文件中读取数据 73 2.10 处理字符串中的zip文件 74 2.11 将文件树归档到一个压缩的tar文件 76 2.12 将二进制数据发送到...
统计文本文件中每个URL的文件名及其出现次数,忽略域名、路径和参数。 **解决方案**: 1. **正则表达式解析**:利用正则表达式从URL中提取文件名部分,处理特殊情况如空文件名。 2. **哈希表计数**:使用哈希表...
- 计算机的发展主要分为基于真空管、晶体管、集成电路和大规模集成电路四个时代,每个时代主要由其使用的元件技术决定。 13. 字符A对应的ASCII码值是B. 65。 - ASCII码中,大写字母"A"的值是65。 14. 统一资源...
例如,鸭子对象的叫、飞、外形这三个措施,可以提取到鸭父类中,让每个鸭子都继承这个鸭父类,重写这三个措施。 c) 工厂模式: 工厂模式是一种创建型模式,提供一个统一的接口来获取实例对象的引用。例如,登录...
- **图形方式中止一个程序**:在 GUI 环境中,可以使用任务管理器来中止程序。 - **查看进程打开的文件**:使用 `lsof -p <pid>` 显示指定进程打开的文件列表。 - **显示开启文件 abc.txt 的进程**:执行 `lsof -w ...
2. 深度为7的满二叉树:满二叉树是每个层级都有最大节点数的二叉树。深度为7的满二叉树,叶子节点(没有子节点的节点)的个数为2^7 - 1 = 128 - 1 = 127,选项C中的64是错误的。 3. C语言逻辑表达式:在C语言中,"!...