网络内容爬取、文件操作、KMP匹配

1 importjava.net.MalformedURLException;2 importjava.net.URL;3 importjava.net.URLConnection;4 importjava.util.ArrayList;5 import java.io.*;6 importjava.util.Scanner;7

8 classGetHtmlData {9 privateString url;10 GetHtmlData(){//构造函数

11 }12 URL readurl;13 String bq(String pt) {14 String ps;15 ps=newString();16 if(pt.charAt(0)!='h'&&pt.charAt(1)!='t'&&pt.charAt(2)!='t'&&pt.charAt(3)!='p') {17 ps="https://"+pt;18 returnps;19 }20 returnpt;21 }22 String GetUrl(String pt,boolean check) throwsIOException {23 if(check==true)24 pt=bq(pt);//补全网址

25 url=newString();26 url=pt;//init url

27 readurl=new URL(url);//url字符串构建URL类

28 URLConnection connection = readurl.openConnection();//初始化连接

29 connection.setRequestProperty("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11");30 connection.connect();//开始连接

31 String line;32 String web_data;33 web_data=newString();34 line=newString();35 //输入流

36 BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"GBK"));37 while((line=in.readLine())!=null) {//java 中 null 为小写

38 web_data+=line;39 }40 returnweb_data;41 }42

43 String GetUrl_utf(String pt,boolean check) throwsIOException {44 if(check==true)45 pt=bq(pt);//补全网址

46 url=newString();47 url=pt;//init url

48 readurl=new URL(url);//url字符串构建URL类

49 URLConnection connection = readurl.openConnection();//初始化连接

50 connection.setRequestProperty("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11") ;51 connection.connect();//开始连接

52 String line;53 String web_data;54 web_data=newString();55 line=newString();56 //输入流

57 BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));58 while((line=in.readLine())!=null) {//java 中 null 为小写

59 web_data+=line;60 }61 returnweb_data;62 }63 }64 classWFILE {65 FileWriter fp;66 PrintWriter outfp;67 boolean OpenFile(String m,String f) {//将s内容输出至文件目录m下的f文件,wdata为文件内容

68 File catalogue = new File(m);//目录

69 try{70 if (!catalogue.exists()) {71 boolean ok=catalogue.mkdir();72 if(!ok)//如果失败返回失败

73 returnok;74 }75 }76 catch(Exception e) {//输出异常

77 System.out.println("在构建目录时异常,目录名为: "+m);78 e.printStackTrace();79 }80 String lj=m+"\\"+f;81 File fe=newFile(lj);82 try{83 if(!fe.exists()) {84 boolean ok2=fe.createNewFile();85 if(!ok2)86 returnok2;87 }88 fp = newFileWriter(fe);89 outfp = newPrintWriter(fp);90 return true;91 }92 catch(Exception e){93 System.out.println("在构建文件时异常");94 e.printStackTrace();95 }96 return false;97 }98 booleanCloseFile() {99 if(fp==null)100 return false;101 else{102 try{103 fp.close();104 } catch(IOException e) {105 //TODO Auto-generated catch block

106 System.out.println("关闭文件错误");107 e.printStackTrace();108 }109

110 }111 return true;112 }113 booleanprint(T tdata){114 if (fp==null||outfp==null)115 return false;116 outfp.print(tdata);117 return true;118 }119 booleanprintln(T tdata){120 if (fp==null||outfp==null)121 return false;122 outfp.println(tdata);123 return true;124 }125 }126

127 classKMP {128 intnextp[];129 intn,m;130 String pattern;131 String text;132 intcc;133 intpp;134 KMP(){135 cc=0;136 pp=0;137 last=-1;138 begin='\0';139 }140 ArrayListans;141 booleanSet_substring(String pattern) {142 this.pattern=pattern;143 if(pattern==null)144 return false;145 int n=pattern.length();146 this.n=n;147 nextp=new int[n+10];148 for(int i=0;i0) {153 j =nextp[j];154 if(pattern.charAt(j)==pattern.charAt(i)) {155 nextp[i+1]=j+1;156 break;157 }158 }159 }160 return true;161 }162 voidfind_substring(String text) {163 ans=new ArrayList();164 this.text=text;165 int m=text.length();166 this.m=m;167 for(int i= 0,j=0;i0) {173 try{174 j=nextp[j];175 }176 catch(Exception e) {177 }178 if(text.charAt(i)==pattern.charAt(j)) {179 ++j;180 break;181 }182 }183 }184 if(j>=n) {185 ans.add(i);186 }187 }188 }189 void Set_min(int t) {//Set the min index

190 cc=t;191 }192

193 charbegin;194 intlast;195 void set_last(intt) {196 last=t;197 }198 void Set_begin(chart) {199 begin =t;200 }201

202 ArrayList get_data(chars) {203 chara[];204 ArrayList zans = new ArrayList();205 a=new char[m];206 for(int i=0;ilast)212 break;213 if(begin!='\0') {214 while( ss < m && text.charAt(ss) !=begin)215 ss++;216 if(ss==m)217 continue;218 else{219 w=ss;220 }221 }222 int t=0,ok=0;223 if(w+1<=cc)224 continue;225 for(int j=w+1;j

237 a[t]=0;238 if(t==0)239 continue;240 charb[];241 b=new char[t];242 for(int i1=0;i1

自己java_一些自己用的java类相关推荐

  1. octave安装 缺java_在Octave中导入Java类

    我一直很难弄清楚该怎么做.从八度的网站,似乎Java类是通过类路径中找到.此堆栈溢出答案指示"静态Java路径"是"动态Java路径".但是我不确定如何设置静态 ...

  2. jaxb xml 生成 java_使用 JAXB 工具根据 Java 类生成 XML 模式

    使用 JAXB 工具根据 Java 类生成 XML 模式 2010-06-10 18:24:26|  分类: web service |字号 订阅 关键字: java to xml 使用 JAXB 工 ...

  3. xml动态生成java_从XML文档动态生成Java类

    考虑这种情况:我有一个名为person.xml的 XML文件,其中包含以下数据. MrFoo 28 如果我想将这个XML读入Java对象,我将创建一个名为PersonBean的Java bean(使用 ...

  4. 国产cms java_国产java类cms v3.0.161109

    国产java类cms简介 tjpcms是一套基于java的cms解决方案,开源免费.其独有的实时配置增删改查的功能,是其区别于同类cms的最大特点,也是最大优势,极大减少了重复劳动.懂jsp即可实现快 ...

  5. xsd java_从XSD生成JAVA类 IMS QTI规范实现之一

    IMS提供了QTI规范的XSD版本,在实现过程涉及到XML与编程对象之间的转换.从几个实现QTI规范的开源项目来看,大多使用JAVA实现.在将QTI XSD转换成JAVA类时,使用JAXB来实现,但这 ...

  6. java怎么连发子弹_【Java_项目篇1】--JAVA实现坦克大战游戏--子弹连发+爆炸效果(四)...

    前期相关文章 [Java_项目篇<1>]–JAVA实现坦克大战游戏–画出坦克(一) [Java_项目篇<1>]–JAVA实现坦克大战游戏–坦克移动+添加敌方坦克(二) [Jav ...

  7. 【Java_项目篇1】--JAVA实现坦克大战游戏--坦克移动+添加敌方坦克(二)

    前期文章: [Java_项目篇<1>]--JAVA实现坦克大战游戏--画出坦克(一) 控制小球移动 1.外部类 实现KeyListener监听接口写法 package com.test3; ...

  8. 使用Protobuf文件一键生成Java类

    使用Protobuf文件生成Java类 .proto 文件生成 .java 参考 看了一篇文章:主题是 proto 先生成 desc,然后在用 FreeMarker 模板引擎来做代码自动生成了: .p ...

  9. 初识java类的接口实现

    初识java类的接口实现 如果两个类之间不存在继承关系,且两个类都想实现同一个接口,两个类都必须实现接口中全部方法,否则报语法错误 如果两个类之间存在继承关系也想实现同一个接口,父类如果实现了某个接口 ...

最新文章

  1. 生信服务器 | 更改 CentOS/RHEL 6/7 中的时区
  2. Windows中断编程
  3. java并发处理时mvel表达式处理慢,一文说清!
  4. android使用java library module时初始化OkHttpClient时报错 ClassDefNotFoundError之类的
  5. java docx 内存溢出_第2章 Java内存区域与内存溢出异常
  6. MS-Sqlserver2008建立维护计划执行备份任务
  7. EF双向一对一中的坑
  8. A Concise and Provably Informative Multi-Scale Signature Based on Heat Diffusion
  9. C陷阱与缺陷阅读笔记(上)
  10. sql获取服务器系统时间,sql server 获取系统时间的方法
  11. kernal tch 下载 天正_打开cad图时提示TCH_KERNAL 缺乏解释器天正图形看不见, 请下载天正插件......
  12. LabVIEW与Access数据库通信时,如何创建DSN文件
  13. Windows之cmd命令检查网络
  14. python编程培训郑州
  15. 《沈工智校》技术支持
  16. C++ PAT甲级 1050 String Subtraction (20分)
  17. 新式“组织生活会”,再现团队互信的光辉
  18. 通过一个无人机代码例程学会ardunio
  19. sqlite如何在android上编译,如何在Android中使用SQLITE中的准备语句?
  20. 基于FPGA的音频信号的FIR滤波(Matlab+Modelsim验证)

热门文章

  1. 导航系统辅助设备行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  2. 删除了几个月的照片能找回么_iPhone的相册管理功能居然这么强大?删掉的照片还能这样找回?...
  3. 基于JWT(Json Web Token)的授权方式
  4. WebService可以远程调试调用
  5. SpringBoot Serverless 实战 | 监控调试
  6. 微软再次“封杀” Flash Player!
  7. 一枚比特币变换一台车,特斯拉与比特币还要绑定多久?
  8. AWS新品直指微软,它会是改变数据库的“Game Changer”吗?
  9. 用三年时间培养 1W 名高素质技术人才,这是一个什么样的计划?
  10. 面向自动驾驶行业,Imagination推出性能高达600 TOPS的多核AI加速器