Java中的StringBuffer等各种类中的方法

一、StringBuffer类

自带了一块缓冲区的字符串,叫StringBuffer类。可以修改字符串的内容。和String完全不同。

理解为:带了一块空间的字符串对象。

1.构建一个StringBuffer对象

//构造方法:
new StringBuffer();//默认的缓冲区大小16个字符
new StringBuffer(int capacity);//也可以自己指定容量大小
new StringBuffer(String s);//StringBuffer对象创建好,并且里面还存储了字符串

2.StringBuffer的常用方法

//1.添加
append(data)-->StringBuffer,末尾追加。生活中的排队,都是默认排在队伍末尾
insert(offset,data)-->StringBuffer,插入数据。生活中的插队,在哪插入。

//2.删除
delete(start,end)-->StringBuffer,删除,从start下标开始,删除到end下标之前。包含start,但是不包含end。
deleteCharAt(index)-->StringBuffer,删除指定下标对应的字符。

//3.更改
reverse()-->StringBuffer,翻转一个字符串。
setCharAt(index, char)-->void,设置指定下标对应的字符。字符替换。
setLength(newLength)-->void,设置StringBuffer的字符串的长度。截取/用空字符填充
replace(start,end, str)-->StringBuffer,替换指定区间的内容:[start,end)
toString()-->从StringBuffer类型,变为String类型。
                                                  
//4.同String类相同
length()-->int,获取长度
charAt(index)-->charindexOf(String)
indexOf(String,fromIndex)
lastIndexOf(String)
lastIndexOf(String,fromIndex)
substring(begin)
substring(begin,end)

二、StringBuilder类

StringBuilder类提供的方法,和StringBuffer功能相同。

StringBuffer和StringBuilder的使用方式几乎相同:

  • step1:创建StringBuffer或StringBuilder对象。
  • step2:执行方法:。。。

它们的区别:

​ StringBuffer是线程安全的,效率比StringBuilder低一些。JDK1.0

​ StringBuilder线程不安全。效率比StringBuffer高一些。JDK1.5

三、Math类

public static void main(String[] args) {
		System.out.println(Math.PI);//圆周率,3.141592653589793
		
		System.out.println(Math.abs(100));//绝对值
		System.out.println(Math.abs(-100));
		
		//向上取整
		System.out.println(Math.ceil(3.00001));//返回大于或等于参数的最小(最接近负无穷大) double值,等于一个数学整数。 4.0
		//向下取整
		System.out.println(Math.floor(4.1));//4.0
		//四舍五入
		System.out.println(Math.round(3.49));//3
		
		double num = 3.4;
		System.out.println(Math.floor(num + 0.5));//效果是四舍五入吗?是
		
		System.out.println(Math.pow(2, 3));//a的b次方
		System.out.println(Math.pow(3, 2));
		
		System.out.println(Math.sqrt(9));//根号9-->3
		System.out.println(Math.sqrt(8));//根号8-->2倍根号2
		
//		System.out.println(Math.random());//随机数,取值范围:[0,1),随机小数
		//偷偷的看了一下Math.random()的源代码,发现就是new Random对象,调用nextDouble()方法。
		/*
		 * 需求:int
		 * 
		 * 
		 * [0,1)  * 100
		 * --->[0,100) [0,99.999999999]
		 * 直接取整数部分:(int)-->[0,99]
		 * 
		 * 
		 * 取[0,100]的随机数
		 * -->取[0,100.9889988)
		 * -->[0,1)*101-->[0,101)
		 * 			100.99999999999
		 * -->(int)-->[0,100]
		 * 
		 * 
		 * 取[0,10]的随机数
		 * -->取[0,10.999999]
		 * -->[0,1)*11    -->[0,11)
		 * 						10.9999999
		 * -->(int)-->[0,10]
		 * 
		 * 取[5,15]的随机数
		 * --->[0,10]+5--->[5,15]
		 * --->[0,1)*11--->[0,11)
		 * 					10.9999999
		 * --->(int)--->[0,10]
		 * 
		 * 取[3,14]的随机数
		 * --->[0,11]+3
		 * --->[0,1)*12 --->[0,12)
		 * 						11.999999
		 * --->(int)-->[0,11]
		 * 
		 * 取[m,n]之间的随机整数
		 * -->[0,n-m] + m
		 * 
		 * (int)(Math.random()*(n-m+1)+m);//获取[m,n]之间的随机整数的公式
		 */
		
		double d1 = Math.random();//[0,1)
		double d2 = d1 * 100;//乘以100后的取值范围?[0,100)
		
		int i1 = (int)d2;//[0,99]
		
		int i2 = i1 + 3;//[3,102]
		System.out.println((int)(Math.random()*100+3));
		
		System.out.println((int)(Math.random()*101));//[0,100]
		System.out.println((int)(Math.random()*11));//[0,10]
		System.out.println((int)(Math.random()*11+5));//5,15]
		System.out.println((int)(Math.random()*12+3));//[3,14]
		
		
		
	}

四、BigDecimal类

public static void main(String[] args) {
		double d1 = 0.05;
		double d2 = 0.01;
		System.out.println(d1+d2);
		System.out.println(1.0-0.9);
		
		System.out.println(0.1+0.2);
		System.out.println(1.5+0.3);
		
		System.out.println("------------------");
		//BigDecimal,构造BigDecimal对象时候,如果直接使用double类型作为参数,存在精度
//		BigDecimal bd1 =new BigDecimal(0.05); //0.05000000000000000277555756156289135105907917022705078125
//		BigDecimal bd2 = new BigDecimal(0.01); //0.01000000000000000020816681711721685132943093776702880859375
//		System.out.println(bd1);//重写了toString(),显示存储的数值
//		System.out.println(bd2);
		
		BigDecimal bd3 = new BigDecimal("0.05");
		BigDecimal bd4 = new BigDecimal("0.01");
		System.out.println(bd3);
		System.out.println(bd4);
		//加法
		BigDecimal res1 = bd3.add(bd4);//d1+d2--->d1.add(d2)
		System.out.println(res1);//0.06
		

		//减法
		BigDecimal res2 = bd3.subtract(bd4);//0.04
		System.out.println(res2);
		//乘法
		BigDecimal res3 = bd3.multiply(bd4);//0.0005
		System.out.println(res3);
		BigDecimal bd5 = new BigDecimal("10");
		BigDecimal bd6 = new BigDecimal("3");
		
		//除不尽的情况,必须明确2个信息:(小数点后保留几位,是否使用四舍五入)
//		BigDecimal res4 = bd5.divide(bd6);
		BigDecimal res5 = bd5.divide(bd6, 2, BigDecimal.ROUND_HALF_UP);//res5=333
		System.out.println(res5);
		
	}

五、Random类

public static void main(String[] args) {
		//step1:创建Random类的对象
		Random r1 = new Random();
		
		//step2:通过r1调用方法,就能够生成各种各样的随机数
		boolean b1 = r1.nextBoolean();//产生一个boolean类型的随机数
		System.out.println(b1);
		
		double d1 = r1.nextDouble();//产生一个随机double类型,取值范围:[0,1)
		System.out.println(d1);
		
		int i1 = r1.nextInt();//产生一个int类型的随机数
		System.out.println(i1);
		
		int i2 = r1.nextInt(3);//产生一个int类型的随机数:[0,3)
		System.out.println(i2);
		
		
		Random r2 = new Random(10);
		Random r3 = new Random(10);
		System.out.println("-->"+r2.nextInt());
		System.out.println("-->"+r3.nextInt());
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值