BigInteger类【理解】
BigInteger的介绍
用于大整数计算(理论整数的位数是不受限制的)
BigInteger的构造方法
public BigInteger(String num); //创建一个大整数
BigInteger的成员方法
BigInteger不能直接使用±*/进行计算,而是用通过方法进行计算
public BigInteger add(BigInteger value); 求和
public BigInteger subtract(BigInteger value); 求差
public BigInteger multiply(BigInteger value); 求积
public BigInteger divide(BigInteger value); 求商
例如:
public class TestBigInteger {
public static void main(String[] args) {
//1.创建一个BigInteger
BigInteger b1 = new BigInteger("99999999999999999");
//2.计算
//求和
BigInteger add = b1.add(new BigInteger("1111111111111111"));
System.out.println(add);
//求差
BigInteger subtract = b1.subtract(new BigInteger("22222222222222222"));
System.out.println(subtract);
//求积
BigInteger multiply = b1.multiply(new BigInteger("33333333"));
System.out.println(multiply);
//求商,如果除不尽,那么不要小数部分
b1 = new BigInteger("10");
BigInteger divide = b1.divide(new BigInteger("3"));
System.out.println(divide);
}
}
BigDecimal的介绍
做高精度的浮点数运算
BigDecimal的构造方法
public BigDecimal(double d);
public BigDecimal(String s); 【推荐】
BigDecimal的成员方法
BigDecimal不能直接使用±*/进行计算,而是用通过方法进行计算
public BigDecimal add(BigDecimal value) 加法运算
public BigDecimal subtract(BigDecimal value) 减法运算
public BigDecimal multiply(BigDecimal value) 乘法运算
public BigDecimal divide(BigDecimal value) 除法运算(能除尽)
public BigDecimal divide(BigDecimal value,int 保留位数,RoundingMode.HALP_UP) 除法运算(不能除尽)
例如:
public class TestBigDecimal02 {
public static void main(String[] args) {
//1.创建一个BigDecimal
BigDecimal b1 = new BigDecimal("9.99999999999");
//2.计算
//加法
BigDecimal add = b1.add(new BigDecimal("1.11111111111111"));
System.out.println(add);
//减法
BigDecimal subtract = b1.subtract(new BigDecimal("2.222222222222222"));
System.out.println(subtract);
//求积
BigDecimal multiply = b1.multiply(new BigDecimal("3.33333"));
System.out.println(multiply);
//求商,注意,如果除不尽,会抛出异常
b1 = new BigDecimal("1.1");
// BigDecimal divide = b1.divide(new BigDecimal("0.3"));
// System.out.println(divide);
//如果除不尽,我们可以使用divide的一个重载方法
//BigDecimal divide(BigDecimal divisor, int scale, int roundingMode):
// 除数 保留几位小数 取舍模式
BigDecimal divide = b1.divide(new BigDecimal("0.3"), 5, RoundingMode.HALF_UP);
System.out.println(divide);
}
}
Arrays类【重点】
Arrays是专门操作数组的工具类(方法都是静态的)
Arrays类的常用方法
public static void sort(int[] a); 对数组中的元素进行从小到大的排序
public static String toString(int[] a); 将一个数组的元素拼成一个大的字符串返回
例如:
public class TestArrays {
public static void main(String[] args) {
//1.sort 排序方法
int[] arr = {4,5,3,6,7,8,1,2,9};
Arrays.sort(arr);
//2.输出
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
//3.toString 将一个数组的所有元素拼成一个大的字符串返回
String arrStr = Arrays.toString(arr);
System.out.println(arrStr);
}
}
扩展一下:
sort方法对于数值类型数组排序时,按照数值的从小到大进行排序
sort方法对于char类型数组排序时,按照字符的码值从小到大进行排序
sort方法对于String类型数组排序时,首先比较首字母的码值,
如果相等再比较次字母的码值,依次类推,按照从小到到进行排序
基本类型与字符串之间的转换【面试题】
基本类型 转成 String
int num = 10;
a.直接+一个""
String s = num + “”;
b.通过String的静态方法valueOf
String s = String.valueOf(num);
String 转成 基本类型
String num = “100”;
第一种方式:
a.先使用Integer的构造方法
Integer i = new Integer(num);
b.接着调用intValue方法拆箱
int number = i.intValue();
c.或者不调用intValue自动拆箱即可
int number = i;
第二种方式:
直接调用包装类的parseXxx(String s)解析字符串的方法
int number = Integer.parseInt(num);
String类常用方法【重点】
String的构造方法:
直接赋值:
String s = “java”;
构造方法:
String s = new String(“java”);
char[] chs = {'j','a','v','a'};
String s = new String(chs);
byte[] bs = {97,98,99,100};
String s = new String(bs); // s字符串最终的内容是:"abcd"
//5.1 concat 拼接
//方法原型:public String concat (String str)
//5.2 contains 判断是否包含某个小字符串
//方法原型:public boolean contains (CharSequence s)
//5.3 endsWith 是否以xx结尾
//方法原型:public boolean endsWith(String suffix)
//5.4 startsWith 是否以xx开头
//方法原型:public boolean startsWith(String prefix)
//5.5 indexOf 查找目标字符串在当前字符串中第一次出现的索引
//方法原型:public int indexOf(String str)
//5.6 lastIndexOf 查找目标字符串在当前字符串中最后一次出现的索引
//方法原型:public int lastIndexOf(String str)
//5.7 replace 将当前字符串中的目标字符串,替换为另外一个字符串
//方法原型:public String replace(CharSequence s1,CharSequence s2)
//5.8 substring 截取子串
//方法原型:public String substring(int beginIndex)
//方法原型:public String substring(int beginIndex, int endIndex);(含头不含尾)
//5.9 toCharArray 将字符串转成char数组
//方法原型:public char[] toCharArray()
//5.10 toLowerCase 转成纯小写
//方法原型: public String toLowerCase()
//5.11 toUpperCase 转成纯大写
//方法原型:public String toUpperCase()
//5.12 trim 取出字符串两端的空格(不去除空间的空格)
//方法原型:public String trim()
//5.13 split 切割字符串,参数称为切割符
//方法原型:public String[] split(String regex)