day-18-常用API-正则表达式

常用API-01-Math

常用API-02-练习:两道数学算法题
常用API-03-System

 

Student stu=(Student)arr2[i] 强制转换

常用API-04-Runtime         (表示当前虚拟机的运行环境)

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

public class MyJframe extends JFrame implements ActionListener {

    JButton yesBut = new JButton("好看爆了");
    JButton midBut = new JButton("一般般吧");
    JButton noBut = new JButton("不好看,有点磕碜");
    JButton dadBut = new JButton("爸爸╥﹏╥饶了我吧");

    //决定了上方的按钮是否展示
    boolean flag = false;

    public MyJframe() {
        initJFrame();
        initView();
        //显示
        this.setVisible(true);
    }

    private void initView() {

        this.getContentPane().removeAll();

        if (flag) {
            //展示按钮
            dadBut.setBounds(50, 20, 300, 30);
            dadBut.addActionListener(this);
            this.getContentPane().add(dadBut);
        }

        JLabel text = new JLabel("你觉得自己好看吗?");
        text.setFont(new Font("微软雅黑", 0, 33));
        text.setBounds(120, 150, 300, 50);


        yesBut.setBounds(200, 250, 100, 30);
        midBut.setBounds(200, 325, 100, 30);
        noBut.setBounds(160, 400, 180, 30);

        yesBut.addActionListener(this);
        midBut.addActionListener(this);
        noBut.addActionListener(this);

        this.getContentPane().add(text);
        this.getContentPane().add(yesBut);
        this.getContentPane().add(midBut);
        this.getContentPane().add(noBut);

        this.getContentPane().repaint();
    }

    private void initJFrame() {
        //设置宽高
        this.setSize(500, 600);
        //设置标题
        this.setTitle("颜值自测");
        //设置关闭模式
        this.setDefaultCloseOperation(3);
        //置顶
        this.setAlwaysOnTop(true);
        //居中
        this.setLocationRelativeTo(null);

        //取消内部默认布局
        this.setLayout(null);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        Object obj = e.getSource();
        if (obj == yesBut) {
            showJDialog("你的电脑被你好看爆了,将在一分钟后关机");
            try {
                Runtime.getRuntime().exec("shutdown -s -t 60");
            } catch (IOException ioException) {
                ioException.printStackTrace();
            }
            flag = true;
            initView();

        } else if (obj == midBut) {
            System.out.println("测试者点击了一般般");
            showJDialog("输入错误,已帮你点击'好看爆了'");
            showJDialog("你的电脑被你好看爆了,将在一分钟后关机");
            try {
                Runtime.getRuntime().exec("shutdown -s -t 60");
            } catch (IOException ioException) {
                ioException.printStackTrace();
            }
            flag = true;
            initView();


        } else if (obj == noBut) {
            System.out.println("测试者点击了不帅");
            showJDialog("输入错误,已帮你点击'好看爆了'");
            showJDialog("你的电脑被你好看爆了,将在一分钟后关机");
            try {
                Runtime.getRuntime().exec("shutdown -s -t 60");
            } catch (IOException ioException) {
                ioException.printStackTrace();
            }
            flag = true;
            initView();

        } else if (obj == dadBut) {
            System.out.println("测试者点击了求饶");
            showJDialog("叫爸爸");

            try {
                Runtime.getRuntime().exec("shutdown -a");
            } catch (IOException ioException) {
                ioException.printStackTrace();
            }
        }
    }

    public void showJDialog(String content) {
        //创建一个弹框对象
        JDialog jDialog = new JDialog();
        //给弹框设置大小
        jDialog.setSize(300, 250);
        //让弹框置顶
        jDialog.setAlwaysOnTop(true);
        //让弹框居中
        jDialog.setLocationRelativeTo(null);
        //弹框不关闭永远无法操作下面的界面
        jDialog.setModal(true);
        jDialog.setTitle("温馨提示");
        //创建Jlabel对象管理文字并添加到弹框当中
        JLabel warning = new JLabel(content);
        warning.setFont(new Font("微软雅黑", 5, 12));
        warning.setBounds(0, 0, 200, 150);
        jDialog.getContentPane().add(warning);

        //让弹框展示出来
        jDialog.setVisible(true);
    }
}

常用API-05-Object

任意类的构造方法 都有 隐藏的super(); 用于 默认访问父类无参构造
为什么默认访问父类无参构造 不访问有参构造 因为顶级父类中只有无参构造;

重写如下:

@Override
    public String toString() {
        return name+", "+age;
    }

equals方法 大厂面试题

常用API-06-浅克隆、深克隆和对象工具类Objects
重写:
第三方:

objects.equals( s1,s2 );  细节:
1.方法的底层会判断s1是否为null,如果为null,直接返回false;
2.如果s1不为null,那么就利用s1再次调用equals方法;
3.此时 s1是Student类型,所以最终会调用Student中的equals方法.
如果没有重写,比较地址值 ;重写了,比较属性值.

 

常用API-07-BigInteger(大整数)基本使用和原理解析

最常用的构造方法:
long取值范围之内选用4.valueof();小范围细节优化,节约内存
不确定到底多少或非常大用2(String value);
bd9.add(bd10)   -> ab9+ba10;
BigInteger max/min(BigInteger val); 此函数不会 创建新对象 而是直接拿最值 给新的BigIntegar

BigInteger原理解析

十进制276... 转二进制 32位一组 再转二进制 再存储到数组

常用API-08-BigDecima基本使用和原理解析

构造方法获取BigDecimal对象

          public BigDecimal(double val);          public BigDecimal(String val);

静态方法获取BigDecimal对象       (上面右边(3).)

public static BigDecimal valueOf (double val);
只要括号里面不是0~10的 整数 就new

BigDecimal divide(val,精确几位,舍入模式);          底层存储方式:

"xx.xx" 字符串拆解成字符(包括'.','-')  再转换成ascll码 存到数组中

常用API-09-正则表达式初体验和基本规则

作用:1.检验字符串是否满足规则  2.在一段文本中查找满足要求的内容

转义字符: \ 改变后面那个字符原本的含义

常用API-10-正则表达式基本练习
快捷正则!  
常用API-11-正则表达式基本练习2

忽略abc大小写:(?i)abc; 忽略bc大小写:a(?i)bc; 忽略b大小写:a((?i)b)c;

常用API-12-爬虫

pattern:表示正则表达式 
Matcher:文本匹配器 作用按照正则表达式 的规则去读取字符串,从头开始读取. 
在大串中去找符合匹配规则的字串


正确方法                                                        解析方法 matcher(str);find();group();
网络爬虫:

package a08regex;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class RegexDemo {
    //爬取网络信息
    public static void main(String[] args) throws IOException {

        //创建一个URL对象
        URL url = new URL("https://mp.csdn.net/mp_blog/creation/editor/125702270");
        //连接上这个网址
        //细节: 要保证网络畅通
        URLConnection conn = url.openConnection();
        //创建一个对象去读取网络中的数据
        BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        //regex是正则表达式  pattern:正则表达式的对象
        //String regex="[1-9]\\d{17}";
        //Pattern pattern=Pattern.compile(regex);
        //读取的时候 每次读一整行line
        while ((line = br.readLine()) != null) {
            System.out.println(line);
            //拿着文本匹配器的对象matcher按照pattern的规则去读取 当前的一行信息
            //Matcher matcher=pattern.matcher(line);
            //while(matcher.find()){
            //    System.out.println(matcher.group());
            //}
        }
        br.close();
    } 
}


常用API-13-带条件爬取,贪婪爬取和识别正则的两个方法
 
常用API-14-捕获分组和非捕获分组   分组 就是一个小括号




看了十五天 ideal jdk安装了1天  出去玩了3天 
我只能说牛逼! 我爱编程! 感谢阿炜老师!

posted @ 2022-07-10 13:07  软工菜鸡  阅读(2)  评论(0编辑  收藏  举报  来源