java正则表达式、包装类、文件io流 达内cbg day12

正则表达式

String提供了支持正则表达式的方法

Matches(正则) : 当前字符串能否匹配正则表达式
replaceAll(正则,子串) : 替换子串
split(正则) : 拆分字符串

练习:测试输入身份证号
创建包: cn.tedu.api
创建类: TestRegex.java

package cn.tedu.api;

import java.util.Scanner;

public class TestRegex2 {
    public static void main(String[] args) {
        String regex = "[0-9]{17}[0-9x]";
        /*单个\在Java中有特殊的含义,表示转义符号,不认为这是一个单纯的斜杠
        所以,如果想要单纯的表示一个斜杠,需要在它的前面再加一个斜杠用来转义
        也就是\\才单纯的表示为一个斜杠
         */
        String regex2 = "\\d{17}{0-9x)";
        System.out.println("输入身份证号");
        String input = new Scanner(System.in).nextLine();
        if(input.matches(regex2)){
            System.out.println("输入正确");
        }else {
            System.out.println("输入错误");
        }
    }
}

包装类

作用:包装类把基本类型包装,提供更加完善的功能

1.与基本类型的关系

在这里插入图片描述

2.Number类

数字类型的父类

3.Integer

1.创建对象
new Integer(127)
Integer.valueOf(127)
在-128~127之间,使用valueOf创建对象,直接访问缓存对象不新建,范围外创建对象。
2.常用方法
Integer.parseInt(String s)
把字符串转为有符号的十进制

4.Double

1.创建对象
new Double(3.14)
Double.valueOf(3.14)
两种创建方式没有区别
3.常用方法
Double.parseDouble()

5.自动封装与拆箱

自动装箱:把 基本类型 包装成对应的 包装类型 的过程
Integer a = 5;//a是引用类型,引用了包装对象的地址。
编译器会完成对象的自动装箱:Integer a = Integer.valueOf(5);

自动拆箱:从包装类型的值,自动变成 基本类型的值
int i = a;//a现在是包装类型,没法给变量赋值,需要把5取出来。
编译器会完成自动拆箱:int i = a.intValue();

6 BigDecimal

BigDecimal:常用来解决精确的浮点数运算不精确的问题
1 创建对象
方式一 :
BigDecimal(double val)
将double转换为BigDecimal,后者是double的二进制浮点值十进制表示形式,有坑!
方式二 :
BigDecimal(String val)
将String类型字符串的形式转换为BigDecimal

2 常用方法
Add(BigDecimal bd) : 做加法运算
Subtract(BigDecimal bd) : 做减法运算
Multiply(BigDecimal bd) : 做乘法运算
Divide(BigDecimal bd) : 做除法运算,除不尽时会抛异常
Divide(BigDecimal bd,保留位数,舍入方式) : 除不尽时使用
setScale(保留位数,舍入方式) : 同上
pow(int n) : 求数据的几次幂

IO简介

1 流Stream

在学习IO流之前,我们首先需要学习的概念就是Stream流
为了方便理解,我们可以把数据的读写操作抽象成数据在"管道"中流动,但需注意:
1.流只能单方向流动
2.输入流用来读取 → in
3.输出流用来写出 → out
4.数据只能从头到尾顺序的读写一次
所以以程序的角度来思考,In/out 相对于程序而言的输入(读取)/输出(写出)的过程.
在这里插入图片描述

2. File类常用方法

在这里插入图片描述

面试题

Java 中 IO 流分为几种?

按功能来分:输入流(input)、输出流(output)。

按类型来分:字节流和字符流。

字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流按 16 位传输以字符为单位输入输出数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值