JAVA基础知识(四)

本文介绍了Java中的StringBuilder类用于高效字符串修改,Math类提供基本数学运算,String类常用方法如比较、获取和转换,以及BigDecimal类用于精确计算,包括构造方法和四则运算示例。
摘要由CSDN通过智能技术生成

常用API(一)

一、StringBuilder类

   StringBuilder代表可变字符串对象,相当于是一个容器,它里面的字符串是可以改变的,就是用来操作字符串的。

  好处:StringBuilder比String更合适做字符串的修改操作,效率更高,代码也更加简洁

 方法演示:

public class Test{
    public static void main(String[] args){
        StringBuilder sb = new StringBuilder("itehima");
        
        //1.拼接内容
        sb.append(12);
        sb.append("世界");
        sb.append(true);
        
        //2.append方法,支持临时编程
        sb.append(666).append("宇宙").append(666);
        System.out.println(sb); //打印:12世界666宇宙666
        
        //3.反转操作
        sb.reverse();
        System.out.println(sb); //打印:666宙宇666界世21
        
        //4.返回字符串的长度
        System.out.println(sb.length());
        
        //5.StringBuilder还可以转换为字符串
        String s = sb.toString();
        System.out.println(s); //打印:666宙宇666界世21
    }
}

二、Math类

1、Math类概述

     Math 包含执行基本数字运算的方法

2、Math中方法的调用方式

     Math类中无构造方法,但内部的方法都是静态的,则可以通过 类名.进行调用

3、Math类的常用方法

方法名 说明
public static int abs(int a)返回参数的绝对值
public static double ceil(double a)返回大于或等于参数的最小double值,等于一个整数
public static double floor(double a)返回小于或等于参数的最大double值,等于一个整数
public static int round(float a)按照四舍五入返回最接近参数的int
public static int max(int a,int b)返回两个int值中的较大值
public static int min(int a,int b)返回两个int值中的较小值
public static double pow (double a,double b)返回a的b次幂的值
public static double random()返回值为double的正值,[0.0,1.0)

代码演示:

public class MathTest {
    public static void main(String[] args) {
        // 目标:了解下Math类提供的常见方法。
        // 1、public static int abs(int a):取绝对值(拿到的结果一定是正数)
        //    public static double abs(double a)
        System.out.println(Math.abs(-12)); // 12
        System.out.println(Math.abs(123)); // 123
        System.out.println(Math.abs(-3.14)); // 3.14

        // 2、public static double ceil(double a): 向上取整
        System.out.println(Math.ceil(4.0000001)); // 5.0
        System.out.println(Math.ceil(4.0)); // 4.0

        // 3、public static double floor(double a): 向下取整
        System.out.println(Math.floor(4.999999)); // 4.0
        System.out.println(Math.floor(4.0)); // 4.0

        // 4、public static long round(double a):四舍五入
        System.out.println(Math.round(3.4999)); // 3
        System.out.println(Math.round(3.50001)); // 4

        // 5、public static int max(int a, int b):取较大值
        //   public static int min(int a, int b):取较小值
        System.out.println(Math.max(10, 20)); // 20
        System.out.println(Math.min(10, 20)); // 10

        // 6、 public static double pow(double a, double b):取次方
        System.out.println(Math.pow(2, 3)); // 2的3次方   8.0
        System.out.println(Math.pow(3, 2)); // 3的2次方   9.0

        // 7、public static double random(): 取随机数 [0.0 , 1.0) (包前不包后)
        System.out.println(Math.random());
    }
}

 三、String类


    1.构造方法

String(); 创建一个内容为空的字符串对象
String(char[] arr); 根据传入的字符数组创建一个字符串对象
String(char[] arr,int index,int count);根据传入的字符数组的一部分来创建字符串对象
String(byte[] arr); 根据传入的字节数组创建一个字符串对象
String(byte[] arr,int index,int count); 根据传入的字节数组的一部分来创建字符串对象
String(String s); 根据传入的字符串来创建一个字符串对象

                                                                                                           
   2.判断功能

boolean equals(String s);判断两个字符串内容是否相同。区分大小写
boolean equalsIgnoreCase(String s); 判断两个字符串内容是否相同。不区分大小写
boolean startsWith(String s);  判断当前字符串是否以传入的字符串为开头
boolean endsWith(String s);判断当前字符串是否以传入的字符串为结尾
boolean contains(String s);  判断当前字符串中是否包含传入的字符串
boolean isEmpty(); 判断字符串是否为空

                                                                                                                 
    3.获取功能

int length(); 获取字符串的长度
char charAt(int index); 获取传入的索引上的对应的字符
int indexOf(String s);  获取传入的字符串在当前字符串中第一次出现的索引位置
int lastIndexOf(String s);获取传入的字符串在当前字符串中最后一次出现的索引位置
String concat(String s);  拼接字符串
String substring(int index); 从指定位置开始截取。默认到末尾
String substring(int start,int end);截取指定范围的字符串。包含开始、不包含结束

                                                                                                                                       
    4.转换功能

char[] toCharArray();将字符串转成字符数组
byte[] getBytes();  将字符串转成字节数组
String replace(String oldStr,String newStr);  用 新字符串 替换所有的 老字符串
String replace(char oldStr,char newStr);用 新字符 替换所有的 老字符
String toUpperCase();  将字符串转成大写
String toLowerCase(); 将字符串转成小写

                                                                                                                          
    5.其他功能

String[] split(String regex); 按照指定规则切割字符串
String trim();  去除字符串两端的空白

 四、BigDecimal类(重要)

1.BigDecimal是用来进行精确计算的

2.创建BigDecimal的对象,构造方法使用参数类型为字符串的。

3.四则运算中的除法,如果除不尽请使用divide的三个参数的方法。

构造方法

方法名说明
BigDecimal(double val)参数为double
BigDecimal(String val)参数为String

 

常用方法

方法名说明
public BigDecimal add(另一个BigDecimal对象)加法
public BigDecimal subtract (另一个BigDecimal对象)减法
public BigDecimal multiply (另一个BigDecimal对象)乘法
public BigDecimal divide (另一个BigDecimal对象)除法
public BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式)除法

方法演示:

BigDecimal divide = bd1.divide(参与运算的对象,小数点后精确到多少位,舍入模式);
参数1 ,表示参与运算的BigDecimal 对象。
参数2 ,表示小数点后面精确到多少位
参数3 ,舍入模式  
  BigDecimal.ROUND_UP  进一法
  BigDecimal.ROUND_FLOOR 去尾法
  BigDecimal.ROUND_HALF_UP 四舍五入



public class Test {
    public static void main(String[] args) {
        // 目标:掌握BigDecimal进行精确运算的方案。
        double a = 0.1;
        double b = 0.2;

        // 1、把浮点型数据封装成BigDecimal对象,再来参与运算。
        // a、public BigDecimal(double val) 得到的BigDecimal对象是无法精确计算浮点型数据的。 注意:不推荐使用这个,
        // b、public BigDecimal(String val)  得到的BigDecimal对象是可以精确计算浮点型数据的。 可以使用。
        // c、public static BigDecimal valueOf(double val): 通过这个静态方法得到的BigDecimal对象是可以精确运算的。是最好的方案。
        BigDecimal a1 = BigDecimal.valueOf(a);
        BigDecimal b1 = BigDecimal.valueOf(b);

        // 2、public BigDecimal add(BigDecimal augend): 加法
        BigDecimal c1 = a1.add(b1);
        System.out.println(c1);

        // 3、public BigDecimal subtract(BigDecimal augend): 减法
        BigDecimal c2 = a1.subtract(b1);
        System.out.println(c2);

        // 4、public BigDecimal multiply(BigDecimal augend): 乘法
        BigDecimal c3 = a1.multiply(b1);
        System.out.println(c3);

        // 5、public BigDecimal divide(BigDecimal b): 除法
        BigDecimal c4 = a1.divide(b1);
        System.out.println(c4);

//        BigDecimal d1 = BigDecimal.valueOf(0.1);
//        BigDecimal d2 = BigDecimal.valueOf(0.3);
//        BigDecimal d3 = d1.divide(d2);
//        System.out.println(d3);

        // 6、public BigDecimal divide(另一个BigDecimal对象,精确几位,舍入模式) : 除法,可以设置精确几位。
        BigDecimal d1 = BigDecimal.valueOf(0.1);
        BigDecimal d2 = BigDecimal.valueOf(0.3);
        BigDecimal d3 = d1.divide(d2,  2, RoundingMode.HALF_UP); // 0.33
        System.out.println(d3);

        // 7、public double doubleValue() : 把BigDecimal对象又转换成double类型的数据。
        //print(d3);
        //print(c1);
        double db1 = d3.doubleValue();
        double db2 = c1.doubleValue();
        print(db1);
        print(db2);
    }

    public static void print(double a){
        System.out.println(a);
    }
}

                
                                   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值