java学习日志day14

2019年7月16日

replaceAll

将字符串的某种元素,全部替换为指定的元素;

格式
str.replaceAll("\d","*")

对字符串中的数字排序;

把非数字字符替换;

String str = “465asd45679asd12ads”;

str = str.replaceAll("\D","");

char[] cs = str.toCharArray();

Arrays.sort(cs);

System.out.println(Arrays.toString(cs));

若匹配替换符号

str = str.replaceAll("\[//|]","")

.split(); 设定一个字符串为切割符

以匹配到的信息,进行分割,生成一个字符串数组;

前面出现多少个切割符就切出多少个空串,后面还是全切掉;

----------------------------------*

包装类

为了能快速使用基本数据类型,提供基本类型对应的类—包装类

创建出这些包装类的对象,就能使用java提供的功能,便捷操作基本

类型数据;

java提供了9种包装类

byte、short、 char、 int、 long、 float、 double、boolean、void

Byte、Short、 Charactor、 Integer Long、 Float、 Double、Boolean、Void

Void的返回值一定是null;

------------------------------*
Integer

创建Integer对象

包装类对象由基本类型数据构建而来----称之为封箱

Integer in = new Integer(4);

或者 基本类型数据直接赋值给包装类对象–自动封箱–jdk1.5开始拥有此功能

Integer in = 5;

底层为 Integer.valueOf();

包装类对象直接赋值给基本类型,称为自动拆箱;

int i = in;------自动拆箱–jdk1.5开始拥有此功能

其他类型同理;

底层依赖 包装类.valueOf();

xxValue();生成基本类型数据

只有整型才有共享范围;

整型的共享范围为-127–128;超出范围后每次返回一个新对象;

Integer的字符串用法

开头会检测字符串开头是否是+或-,后面内容不能出现非整数
Integer in = new Integer(“123”);

Boolean b = new Boolean(TrUe);布尔值会忽略大小写;

Integer.parseInt(“123”);

包装类的哈希码值都是固定的;

--------------–**---------

Class Math

最终类,提供了简单的数学运算,提供了大量的静态方法

使用方法 Math.方法();

ceil向上取整

floor向下取整

round四舍五入

以下为常用方法

Math.random();提供一个伪随机小数,大于等于0.0,小于1.0;

30-50之间的整数,随机范围20

((int)30+Math.random(*20))

strictfp只能加到方法上,在底层进行运算时,可以把处理的位数,提高

到80位;

因为大部分小数的二进制的补码是无限位数,但是存储的位数是固定的

所以不能进行精确运算

运用BigDecimal进行更为精确运算

BigDecimal()括号内如果为小数则提供更精确的运算,但是不会得到实际想要的结果

BigDecimal("")括号内的数字转换为字符串形式,则就能进行理想化的精确运算

若想运算超大数的运算,则可以通过 BigInterger来进行;

BigInteger b1 = new BigInteger(“4654654564654556497897”);

BigInteger b2 = new BigInteger(“8798321132134687968878745”);

练习:用java程序实现两个整数乘法的过程;

0.00为占位符,如果这个位上有值,就把值展示出来,没有值就补0展示;

若加0.00转换为#号,则若设定的占为数上没有值,则不补0;展示原值;

DecimalFormat d = new DecimalFormat(“0.00”);----(#.#####)

String s = d.format(2.2335);

输出结果为2.23,保留两位小数;

----**----------------------–**–--
时间/日期类

Date类

calendar类

Date类

Date date =new Date();

若不设定值则输出当前日期时间

System.out.println(date);

若指定具体的时间时,则会默认加上1900年1月

则设定日期时需减去1990年1月

//方法名上有黑线,则表示这个方法是过时

则表示在未来的版本可能不支持,不建议用

Date date =new Date(2008-1900,8-1,8);

可以使用

SimpleDateFormat(以字符串形式指定日期格式 例如 yyyy-MM-dddd HH:MM:ss)

yyyy-MM-dddd HH:MM:ss

String str = “20000-11-30 15:10:11”;

SimpleDateFormat dat = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

Date date = dat.parse(str);

SimpleDateFormat dt = new SimpleDateFormat(“yyyy年MM月dd日 HH时mm分ss秒”);

String s = dt.format(date);

System.out.println(s);

//jdk1.8time包下更新 只展示日期

LocalDate f=LocalDate.now();

//加日期

System.out.println(f.plus(1,ChronoUnit.CENTURIES));

07-17 21:30