【Java系列】常用类库

一、类库

在这里插入图片描述在这里插入图片描述

二、数字类

在这里插入图片描述

1.大整数类BigInterger
import java.math.BigInteger;
public class BigIntegerTest {
	public static void main(String[] args) {
		//1.大整数用字符串声明
		BigInteger b1 = new BigInteger("123456789"); 
		BigInteger b2 = new BigInteger("987654321"); 
		System.out.println("b1: " + b1 +  ", b2:" + b2);
		//2.加减乘除、最大最小操作
		System.out.println("加法操作:" + b2.add(b1)); // 加法操作
		System.out.println("减法操作:" + b2.subtract(b1)); // 减法操作
		System.out.println("乘法操作:" + b2.multiply(b1)); // 乘法操作
		System.out.println("除法操作:" + b2.divide(b1)); // 除法操作
		System.out.println("最大数:" + b2.max(b1)); // 求出最大数
		System.out.println("最小数:" + b2.min(b1)); // 求出最小数
		//3.求余比较大小操作
		BigInteger result[] = b2.divideAndRemainder(b1); // 求出余数的除法操作
		System.out.println("商是:" + result[0] + ";余数是:" + result[1]);
		System.out.println("等价性是:" + b1.equals(b2));
		int flag = b1.compareTo(b2);
		if (flag == -1)
			System.out.println("比较操作: b1<b2");
		else if (flag == 0)
			System.out.println("比较操作: b1==b2");
		else
			System.out.println("比较操作: b1>b2");
	}
}
  • 定义的时候是用的字符串
  • 加法不能用+,而是用b2.add(b1)
2.大浮点数BigDecimal
import java.math.BigDecimal;
import java.math.BigInteger;

public class BigDecimalTest {
	public static void main(String[] args) {
		//1.声明BigDecimal对象
		BigDecimal b1 = new BigDecimal("123456789.987654321"); 
		BigDecimal b2 = new BigDecimal("987654321.123456789");
		System.out.println("b1: " + b1 +  ", b2:" + b2);
		//2.加减乘除操作
		System.out.println("加法操作:" + b2.add(b1)); // 加法操作
		System.out.println("减法操作:" + b2.subtract(b1)); // 减法操作
		System.out.println("乘法操作:" + b2.multiply(b1)); // 乘法操作
			//需要指定位数,防止无限循环,或者包含在try-catch中
		System.out.println("除法操作:" + b2.divide(b1,10,BigDecimal.ROUND_HALF_UP)); // 除法操作
		BigDecimal num1 = new BigDecimal("10");
		BigDecimal num2 = new BigDecimal("3");
			//需要指定位数,防止无限循环,或者包含在try-catch中
		BigDecimal num3 = num1.divide(num2, 3, BigDecimal.ROUND_HALF_UP);
		System.out.println(num3);
		//3.最大最小值操作
		System.out.println("最大数:" + b2.max(b1)); // 求出最大数
		System.out.println("最小数:" + b2.min(b1)); // 求出最小数
		//4.比较操作
		int flag = b1.compareTo(b2);
		if (flag == -1)
			System.out.println("比较操作: b1<b2");
		else if (flag == 0)
			System.out.println("比较操作: b1==b2");
		else
			System.out.println("比较操作: b1>b2");
	}
}
  • 声明的时候尽量要用字符串,用浮点数进行声明的话只会得到一个接近的数,得不到想要的数。
3.随机数类Random

在这里插入图片描述

import java.util.Random;
public class RandomTest {
	public static void main(String[] args) 
	{
		//第一种办法,采用Random类 随机生成在int范围内的随机数
		Random rd = new Random();
		System.out.println(rd.nextInt());
		System.out.println(rd.nextInt(100)); //0--100的随机数
		System.out.println(rd.nextLong());
		System.out.println(rd.nextDouble());		
		System.out.println("=========================");
		
		//第二种,生成一个范围内的随机数 例如0到时10之间的随机数
		//Math.random[0,1)
		System.out.println(Math.round(Math.random()*10));
		System.out.println("=========================");
		
		
		//JDK 8 新增方法
        rd.ints();  //返回无限个int类型范围内的数据
        int[] arr = rd.ints(10).toArray();  //生成10个int范围类的个数。
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        System.out.println("=========================");	
        arr = rd.ints(5, 10, 100).toArray();
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        
        System.out.println("=========================");
        
        arr = rd.ints(10).limit(5).toArray();
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
	}
}
4.Math工具类在这里插入图片描述

三、字符串相关类

public class StringTest {

	public static void main(String[] args) {
		String a = "123;456;789;123 ";
		System.out.println(a.charAt(0)); // 返回第0个元素
		System.out.println(a.indexOf(";")); // 返回第一个;的位置
		System.out.println(a.concat(";000")); // 连接一个新字符串并返回,a不变
		System.out.println(a.contains("000")); // 判断a是否包含000
		System.out.println(a.endsWith("000")); // 判断a是否以000结尾
		System.out.println(a.equals("000")); // 判断是否等于000
		System.out.println(a.equalsIgnoreCase("000"));// 判断在忽略大小写情况下是否等于000
		System.out.println(a.length()); // 返回a长度
		System.out.println(a.trim()); // 返回a去除前后空格后的字符串,a不变
		String[] b = a.split(";"); // 将a字符串按照;分割成数组
		for (int i = 0; i < b.length; i++) {
			System.out.println(b[i]);
		}
		
		//字符串中元素替换的两种方式
		System.out.println("===================");
		System.out.println(a.substring(2, 5)); // 截取a的第2个到第5个字符 a不变
		System.out.println(a.replace("1", "a"));//把1全部替换成a
		System.out.println(a.replaceAll("1", "a")); // replaceAll第一个参数是正则表达式
		System.out.println("===================");
		String s1 = "12345?6789";
		String s2 = s1.replace("?", "a");
		String s3 = s1.replaceAll("[?]", "a");
		// 这里的[?] 才表示字符问号,这样才能正常替换。不然在正则中会有特殊的意义就会报异常
		System.out.println(s2);
		System.out.println(s3);
		System.out.println(s1.replaceAll("[\\d]", "a")); //将s1内所有数字替换为a并输出,s1的值未改变。
	}
}
1.可变字符串
  • StringBuffer、StringBuilder
    及字符串的是可以增加或者减少长度的,原理是在生成空间时就多占一些内存用于扩展。
    在这里插入图片描述
2.可变性的体现

StringBuffer:

public class StringBufferReferenceTest {

	public static void main(String[] args) {
		StringBuffer sb1 = new StringBuffer("123");
		StringBuffer sb2 = sb1;
	    sb1.append("12345678901234567890123456789012345678901234567890");
		System.out.println(sb2);  //sb1 和 sb2还是指向同一个内存的
	}
}
结果:
12312345678901234567890123456789012345678901234567890
12312345678901234567890123456789012345678901234567890

String:

public class StringBufferReferenceTest {

	public static void main(String[] args) {
		String sb1 = new String("123");
		String sb2 = sb1;		
		sb1="sdasd";
		System.out.println(sb1);
		System.out.println(sb2);  //sb1 和 sb2还是指向同一个内存的
	}
}
结果:
sdasd
123
  • StringBuffer中的sb1和sb2是一样的,即两者指向的是同一块内存。

四、时间相关类

在这里插入图片描述

五、格式化相关类

把数字啊,字符串,时间等按照一定的格式化进行输出。
在这里插入图片描述
以数字格式化为例子:

import java.text.DecimalFormat;
public class DecimalFormaterRuleTest {
	public static void main(String[]args){
        
        DecimalFormat df1,df2;
         
        System.out.println("整数部分为0的情况,0/#的区别");
        // 整数部分为0 , #认为整数不存在,可不写; 0认为没有,但至少写一位,写0
        df1 = new DecimalFormat("#.00");
        df2 = new DecimalFormat("0.00");
         
        System.out.println(df1.format(0.1)); // .10  
        System.out.println(df2.format(0.1)); // 0.10  
         
        System.out.println("小数部分0/#的区别");
        //#代表最多有几位,0代表必须有且只能有几位
        df1 = new DecimalFormat("0.00");
        df2 = new DecimalFormat("0.##");
         
        System.out.println(df1.format(0.1)); // 0.10
        System.out.println(df2.format(0.1)); // 0.1
         
        System.out.println(df1.format(0.006)); // 0.01
        System.out.println(df2.format(0.006)); // 0.01
         
        System.out.println("整数部分有多位");
        //0和#对整数部分多位时的处理是一致的 就是有几位写多少位
        df1 = new DecimalFormat("0.00");
        df2 = new DecimalFormat("#.00");
         
        System.out.println(df1.format(2)); // 2.00
        System.out.println(df2.format(2)); // 2.00
         
        System.out.println(df1.format(20)); // 20.00
        System.out.println(df2.format(20)); // 20.00
         
        System.out.println(df1.format(200)); // 200.00
        System.out.println(df2.format(200)); // 200.00       
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值