常用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);
}
}