java基础10:正则表达式与反射

 

关于Java基础的文章,我觉得写得还可以,以前发在了我其它的博客了,肯定是原创,现在再分享给大家出来。

—————————————————————————————————————————————————————————————————————————-

一、正则表达式一、概述1、概念:

  正则表达式,,又称正规表示法、常规表示法,计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

  许多程序设计语言都支持利用正则表达式进行字符串操作。

  正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

2、作用

给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

    1.给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);

    2.可以通过正则表达式,从字符串中获取我们想要的特定部分。

3、正则表达式的特点是:

    1.灵活性、逻辑性和功能性非常的强;

    2.可以迅速地用极简单的方式达到字符串的复杂控制。

    3.对于刚接触的人来说,比较晦涩难懂。

二、常见功能1,匹配

String的matches方法

<span style="white-space:pre"></span>/** * qq号校验 需求:长度5-15的数字,不能以0开头 */private static void fun2() {String s = "023";boolean b = s.matches("[1-9][0-9]*{4,14}");b = s.matches("[1-9]\\d*{4,14}");// 相等System.out.println(b);}2,切割

<span style="white-space:pre"></span>/** * 切割方法 */private static void fun3() {// 切割空格String s = "afdfdfsfddafa";String[] names = s.split(" +");for (String name : names) {System.out.println(name);}// 切割叠词String s1 = "afdfaaaaaaadfsfdssdafa";String[] myNames = s.split("(.)\\1+");for (String name : myNames) {System.out.println(name);}}3,替换

<span style="white-space:pre"></span>/** * 替换 */private static void fun4() {String s1 = "afdfaaaaaaadfsfdssdafa";String s = s1.replaceAll("(.)\\1+", "$1");System.out.println(s);}

4,获取

/** * 获取 */private static void fun5() {Pattern p = Pattern.compile("a*b");//将正则规则封装成对象Matcher m = p.matcher("aaaaabaaabdfdfaaabss");//匹配的字符串封装成对象boolean b = m.matches();//m.find();//System.out.println(m);while(m.find()){System.out.println(m.group());}}三、网页爬虫

网页爬虫听起来挺好玩,但是道理非常简单,就是在互联网上获取指定规则的数据

而这个指定规则可以使用正则表达式来写

public class PaChong {public static void main(String[] args) throws Exception {List<String> list = fun1();for (String name: list) {System.out.println(name);}}/** * @throws Exception * */private static List<String> fun1() throws Exception {URL url = new URL(":8080/myweb/test.html");InputStream in = url.openStream();BufferedReader bufr = new BufferedReader(new InputStreamReader(in));ArrayList<String> list = new ArrayList<String>();String main_rgex = "\\w+@\\w+(\\.\\w+)+";Pattern p =Pattern.compile(main_rgex);String line = null;while((line = bufr.readLine()) != null){Matcher m = p.matcher(line);while(m.find()){list.add(m.group());}}return list;}}

二、反射一,概述

1、定义

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;

对于任意一个对象,都能够调用它的任意一个方法和属性;

动态获取类中信息,就是java反射。

2、反射好处

反射技术大大提高了程序的扩展性

3、Java反射机制主要提供了以下功能:

在运行时判断任意一个对象所属的类;

在运行时构造任意一个类的对象;

在运行时判断任意一个类所具有的成员变量和方法;

在运行时调用任意一个对象的方法;

生成动态代理

二、获取Class对象

志在山顶的人,不会贪念山腰的风景。

java基础10:正则表达式与反射

相关文章:

你感兴趣的文章:

标签云: