常用类以及比较器

常用类

String 类

方法名使用
s.length()返回字符串长度
s.charAt(i)返回字符串第i+1个字符
s.toCharArray()返回字符串的字符数组
s.toLowerCase()返回字符串的小写
s.toUpperCase()返回字符串的大写
s.substring(0,i)返回字符串的前i个字符的字符串,前包括后不包括
s.matches(“abc”)判断与字符串abc是否相同;可使用正则表达式
s.equals(a)判断s与a的内容是否相同
s.indexOf(“abc”)返回abc在字符串的首字母索引 俩个参数时:第二个参数表示从第几个位置开始寻找
s.split(“,”)将字符串以","分割后转换为数组
String.valueOf(arr[i])将数组值转换为String类型
String.valueOf(int i)将int值转换为String类型
str= new String(bytes);将字节数组转换为字符串
str.contains(“abc”)表示字符串中是否包含子字符串
str.replace(“da”, “ad”)替换字符串将原字符串中的da替换成ad

equals和 == 的区别

基本类型 使用 == 号进行比较,比较值。引用类型使用是比较内存地址。

引用类型,使用equals来比较内存地址。内部就使用的 ==

String重写了equals方法,来比价字符串的内容。

StringBuffer 和 StringBuilder 类

​ 在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。

​ StringBuilder 类和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

​ 由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

序号方法描述
append(String s)将指定的字符串追加到此字符序列。
reverse()将此字符序列用其反转形式取代。
delete(int start, int end)移除此序列的子字符串中的字符。
insert(int offset, int i)int 参数的字符串表示形式插入此序列中。
insert(int offset, String str)str 参数的字符串插入此序列中。
replace(int start, int end, String str)使用给定 String 中的字符替换此序列的子字符串中的字符。
int indexOf(String str)返回第一次出现的指定子字符串在该字符串中的索引。

Date

获取当前日期Date date = new Date();
日期格式SimpleDateFormat format1 = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
格式化String now = format1.format(date);
字符串格式化为date类型Date strDate = format2.parse(string);
比较时间inputTime.after()
inputTime.before()

在这里插入图片描述

Math Random

Math.round(a) 将浮点型a四舍五入int round = (int) Math.round(a); Math.random()返回随机小数大于0小于1
Randomrandom.nextInt(21):生成随机整数0-20 包含0和20

在这里插入图片描述

Character

方法名解释
isLetter()是否是一个字母
isDigit()是否是一个数字字符
isWhitespace()是否是一个空白字符
isUpperCase()是否是大写字母
isLowerCase()是否是小写字母
toUpperCase()指定字母的大写形式
toLowerCase()指定字母的小写形式
toString()返回字符的字符串形式,字符串的长度仅为1
isLetter()是否是一个字母

BigDecimal

常用方法

  1. add(BigDecimal)

    BigDecimal对象中的值相加,返回BigDecimal对象

  2. subtract(BigDecimal)

    BigDecimal对象中的值相减,返回BigDecimal对象

  3. multiply(BigDecimal)

    BigDecimal对象中的值相乘,返回BigDecimal对象

  4. divide(BigDecimal)

    BigDecimal对象中的值相除,返回BigDecimal对象 除以比自己小的数会报错ArithmeticException

    三个参数时 a.divide(b, 33, RoundingMode.HALF_UP); 表示a除以b,小数点33位,四舍五入

  5. toString()

    将BigDecimal对象中的值转换成字符串

  6. doubleValue()

    将BigDecimal对象中的值转换成双精度数

  7. floatValue()

    将BigDecimal对象中的值转换成单精度数

  8. longValue()

    将BigDecimal对象中的值转换成长整数

  9. intValue()

    将BigDecimal对象中的值转换成整数

包装类

所有的包装类**(Integer、Long、Byte、Double、Float、Short)**都是抽象类 Number 的子类。

包装类基本数据类型
Booleanboolean
Bytebyte
Shortshort
Integerint
Longlong
Characterchar
Floatfloat
Doubledouble

自动装箱
在这里插入图片描述
自动拆箱
在这里插入图片描述

  • 比较器

    Java比较器的使用背景:
    Java中的对象,正常情况下,只能进行比较:== 或 != 。不能使用 > 或 < 的
    但是在开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小。

    像String、包装类等实现了Comparable接口,重写了compareTo(obj)方法,给出了比较两个对象大小的方式。
    像String、包装类重写compareTo()方法以后,进行了从小到大的排列

    重写compareTo(obj)的规则:

    • 如果当前对象this大于形参对象obj,则返回正整数,
    • 如果当前对象this小于形参对象obj,则返回负整数,
    • 如果当前对象this等于形参对象obj,则返回零。

    对于自定义类来说,如果需要排序,我们可以让自定义类实现Comparable接口,重写compareTo(obj)方法。在compareTo(obj)方法中指明如何排序

    使用Comparable接口

    import lombok.AllArgsConstructor;
    import lombok.Data;
    
    @AllArgsConstructor
    @Data
    public class Goods implements  Comparable<Goods>{
    
        private String name;
        private int price;
    
        //指明商品比较大小的方式:照价格从低到高排序,再照产品名称从高到低排序
        @Override
        public int compareTo(Goods goods) {
            return  this.price - goods.price>0 ? 1 : 0;
        }
    }
    

    测试

    public class Test {
        public static void main(String[] args) {
            Goods liulian = new Goods("榴莲", 99);
            Goods apple = new Goods("苹果", 5);
            int i = liulian.compareTo(apple);
            System.out.println(i);  //1
        }
    }
    

    使用Comparator接口

    当元素的类型没实现java.lang.Comparable接口而又不方便修改代码,或者实现了java.lang.Comparable接口的排序规则不适合当前的操作,那么可以考虑使用 Comparator 的对象来排序

    Comparator objectComparator = new Comparator(){
    
        @Override
        public int compare(Object o1, Object o2) {
            Goods good1 = (Goods) o1;
            Goods good2 = (Goods) o2;
            return good1.getPrice() - good2.getPrice()>0?1:0;
        }
    };
    int compare = objectComparator.compare(liulian, apple);
    System.out.println(compare); //1
    

    在这里插入图片描述

    • Comparable接口的方式一旦一定,保证Comparable接口实现类的对象在任何位置都可以比较大小。
    • Comparator接口属于临时性的比较。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值