就记录一下新的收获吧~
1、定点数(BigDecimal)
先区分一下浮点数和定点数:
浮点数(float/double):小数点可以任意浮动,称为浮点表示法
定点数(BigDecimal):一种数约定数值的小数点固定在某一位置,称为定点表示法
用惯了浮点数的大家都知道,浮点数用的是IEEE标准,在 IEEE 标准中,浮点数是将特定长度的连续字节的所有二进制位分割为特定宽度的符号域,指数域和尾数域三个域,其中保存的值分别用于表示给定二进制浮点数中的符号,指数和尾数。而浮点数在计算时,并不能完全精确,比如我们判断一个浮点数是否为0不能直接==,而是需要fabs(x) < eps, eps通常是一个极小的数。
然而当表示价钱时,一点都不能差,所以这个时候要考虑使用定点数。
所谓定点,就是约定机器中数据的小数点位置固定不变。在计算机中,通常将数据的小数点固定在数据的最高位之前或者最低位之后。前者称为定点小数,后者称为定点整数。
java中的定点数用的是一个名为BigDecimal的类,在本次上机中,主要用到了一下几个方法:
private BigDecimal price = new BigDecimal(0);//new一个值为0的定点数
price = price.setScale(2, RoundingMode.HALF_UP);//定点数price四舍五入保留两位小数
a.compareTo(b) 返回-1: 小于;返回0:等于;返回1:大于
2、字符串匹配
查找某字符串中是否有指定子串
4种方法可用于查找字符串
1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。
2、int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。
3、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。
4、int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。
我用到的是第一种用法
String s = new String("ashjkahf");
s.indexOf("jka") 如果子串匹配成功,返回第一次出现的位置的索引(>=0),匹配失败,返回-1
如果是不区分大小写的匹配,则全部转为小写或者大写:
str.toUpperCase().IndexOf(s.toUpperCase()) //大写
str.toLowerCase().IndexOf(s.toLowerCase()) //小写
3、HashMap
增删改查(包括普通和面向对象)
参考本篇博客:https://blog.csdn.net/njupt16020515/article/details/74935529
写得很好直接看就行(对我就是懒得自己再整理一遍)
4、正则表达式入门
-
runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 号代表前面的字符必须至少出现一次(1次或多次)。
-
runoo*b,可以匹配 runob、runoob、runoooooob 等,* 号代表字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。
-
colou?r 可以匹配 color 或者 colour,? 问号代表前面的字符最多只可以出现一次(0次、或1次)。