关于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对象
志在山顶的人,不会贪念山腰的风景。