JAVA之旅(三十四)_第1页
JAVA之旅(三十四)_第2页
JAVA之旅(三十四)_第3页
JAVA之旅(三十四)_第4页
JAVA之旅(三十四)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、JAVA之旅(三十四)一.自定义服务端我们直接写一个服务端,让本机去连接,可以看到什么样的效果package com.lgl.socket;import java.io.IOException;import java.io.PrintWriter;import .ServerSocket;import .Socket;public class BrowserServer /03:11000/ public static void main(String args) try ServerSocket ss = new ServerSocket(11000); S

2、ocket s = ss.accept(); System.out.println(s.getInetAddress().getHostName() + ":" + s.getInetAddress().getHostAddress(); PrintWriter out = new PrintWriter(s.getOutputStream(), true); out.println("Hello Client"); s.close(); ss.close(); catch (IOException e) / TODO Auto-generated ca

3、tch block e.printStackTrace(); 我们运行了之后直接访问03:11000/就知道什么效果我们控制台也打印出我们的地址来了比较有意思的是,既然是网页打开,那么他是支持html的,我们来输出这句out.println("<font color='red' size='30'>Hello Client");你就可以看到二.URLConnection先看URL的用法package com.lgl.socket;import .MalformedURLException;impo

4、rt .URL;public class URLDemo public static void main(String args) try URL url = new URL("02/myweb/test.html?name=zhangsan&age=18"); / 协议 System.out.println(url.getProtocol(); / 主机 System.out.println(url.getHost(); / 端口 System.out.println(url.getPort(); / 路径 System.out.

5、println(url.getPath(); / 查询部 System.out.println(url.getQuery(); catch (MalformedURLException e) / TODO Auto-generated catch block e.printStackTrace(); 得到的结果继续来看/ 返回一个url连接对象URLConnection openConnection = url.openConnection();System.out.println(openConnection);InputStream inputStream = openConnection

6、.getInputStream();byte buf = new byte1024;int len = inputStream.read(buf);System.out.println(new String(buf, 0, len);其实可以读取流,我们从流中拿到我们想要的东西三.正则表达式特点正则表达式:你可以理解为符合一定规则的表达式,正则我们虽然用的不多,但是确实比较适用的,我们主要来看他的做用专门操作字符串我们直接来看下使用方法我们现在有一个需求对QQ号码进行效验,要求5-15位,不能开头,只能是数字先看一下我们的传统方式是怎么去计算的public class Test public

7、static void main(String args) /* * 对QQ号码进行效验,要求5-15位,不能开头,只能是数字 */ String qq = "11299923" int len = qq.length(); / 长度 if (len > 5 && len <= 15) / 不能0开头 if (!qq.startsWith("0") / 全部是数字 char charArray = qq.toCharArray(); boolean flag = false; for (int i = 0; i < ch

8、arArray.length; i+) if (!(charArrayi >= '0' && charArrayi <= '9') flag = true; break; if (flag) System.err.println("QQ:" + qq); else System.out.println("非纯数字"); else System.out.println("0开头不符合规范"); else System.out.println("QQ长度有问题"

9、;); 这是一件非常麻烦的事情的,而我们来看下正则表达式,是怎么表示的public class Test1 public static void main(String args) String qq = "789152" /* * 我只要告诉你对与错就行 */ String regex = "1-90-94,14" boolean flag = qq.matches(regex); if (flag) System.out.println("QQ:" + qq); else System.out.println("错误&q

10、uot;); 非常的强大,只要几行代码就可以显示,牛啊,这符号定义我们稍后解答四.匹配正则很厉害,我们来看下他的作用特点:用一些特定的符号来表示一些代码操作,这样就简化了书写,学习正则表达式就是用来学习一些特殊符号的使用1.匹配:matches我们来看下这段代码 String str = "c" /* * 这个字符串只能是bcd中的其中一个,而且只能是一个字符 */ String reg = "bcd" boolean flag = str.matches(reg); Srintln(flag);含义理解清楚,其实就比较顺眼了一点点了,我们继续 /* *

11、 这个字符的第二位是a-z就行 */ String reg1 = "bcda-z" boolean flag1 = str.matches(reg); System.out.println(flag1);到现在是否是有点概念?我们继续,如果我现在想我第一个是个字母第二个是个数字,该怎么去拼? String reg2 = "a-zA-Z0-9" boolean flag2 = str.matches(reg2); System.out.println(flag2);大致的讲解一下,因为我也不是很熟,嘿嘿五.切割这个切割,在string也是一个切割split

12、,而我们的正则,也是有的,我们继续看public class Test2 public static void main(String args) String str = "zhangsan,lisi,wangwu" String reg = "," String split = str.split(reg); for (String s : split) System.out.println(s); 我们输出六.替换正则表达式就是string的操作,我们看下替换public class Test2 public static void main(St

13、ring args) / 将数字连续超过五个替换成#号 replaceAll("fwfsda777777fs74666677s", "d5,", "#"); public static void replaceAll(String str, String reg, String newStr) str = str.replaceAll(reg, newStr); Stln(str); 得到的结果七.获取1.将正则表达式封装成对象2.让正则表达式和要操作的对象进行关联3.关联后,获取正则匹配引擎4.通过引擎对符合规则的子串进行操作,比如

14、取出import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test2 public static void main(String args) String string = " hello java android c cc ccc cccc ccccc" /test String reg = "a-z" /将规则封装成对象 Pattern p = Ppile(reg); /让正则对象和要作用的字符串相关联,获取匹配器对象 Matcher matcher =

15、 p.matcher(string); System.out.println(matcher.matches(); 体现了一个模式而已,我们可用通过这个模式去获取字符串八.网页爬虫爬虫我们再熟悉不过了,也俗称蜘蛛,其实就是获取一些数据罢了,我们也是可以用到我们正则中的获取功能的import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.regex.Matcher;import jav

16、a.util.regex.Pattern;public class Test2 public static void main(String args) /* * 获取指定文档中的邮箱地址 */ public static void getEmail() try BufferedReader bufr = new BufferedReader( new FileReader("email.txt"); String line = null; String emailreg = "w+w+(.w+)+" Pattern p = Ppile(emailreg); while (line = bufr.readLine() != null) System.out.println(line); / 判断邮箱 Matcher m = p.matcher(line); while (m.find() System.o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论