上一篇:使用红黑树实现节点增减的平衡修复 | 带你学《Java语言高级特性》之四十二
回顾之前学习的类库相关知识,我们已经对其基本概念与简单使用有了一个较为全面的了解,现在让我们一起来结合具体的一些案例巩固一下StringBuffer类和Random类的相关内容吧。
【本节目标】
通过阅读本节内容,你将结合相关案例场景进行功能实现,复习StringBuffer类,完成对字符串的各种操作与随机,复习Random类并实现抛硬币的小demo,进一步理解与掌握其使用方法。
StringBuffer使用
类库案例分析一
定义一个StringBuffer类对象,然后通过append()方法向对象添加26个小写字母,要求每次只添加一个,共添加26次,然后按照逆序的方式输出,然后删除前5个字符。
本操作主要是训练StringBuffer类中的处理方法,因为StringBuffer的主要特点是允许修改。
public class JavaAPIDemo {
public static void main(String[] args) throws Exception{
StringBuffer buf=new StringBuffer();
for (int x='a';x<='z';x++){ //直接循环设置
buf.append((char)x); //保存字符
}
buf.reverse().delete(0,5); //反转处理
System.out.println(buf); //utsrqponmlkjihgfedcba
}
}
因为StringBuffer的内容是允许修改的,而String内容不允许修改,现在的程序是一个单线程的开发,所以不需要去考虑所谓的并发访问问题。
随机数组
类库案例分析二
利用Random类产生5个1~30之间(包括1和30)的随机整数。
Random产生随机数的操作之中会包含有数字0,所以此时不应该存在有数字0。
import java.util.Arrays;
import java.util.Random;
public class JavaAPIDemo {
public static void main(String[] args){
int result [] =NumberFactory.create(5);
System.out.println(Arrays.toString(result)) ;
}
}
class NumberFactory{
private static Random random = new Random() ;
/**
* 通过随机数来生成一个数组的内容,该内容不包括有0
* @param len 要开辟的数组大小
* @return 包含有随机数的内容
*/
public static int [] create(int len) {
int data [] = new int[len] ; //开辟新的数组
int foot = 0;
while (foot < data.length) {
int num = random.nextInt(30) ;
if(num != 0) {
data[foot ++]= num ; //保存数据
}
}
return data;
}
}
执行结果:
[4, 2, 7, 22, 12]
扔硬币
类库案例分析三
编写程序,用0~1之间的随机数来模拟扔硬币实验,统计扔1000次后出现正、反面的次数并输出。
import java.util.Random;
public class JavaAPIDemo {
public static void main(String[] args){
Coin coin = new Coin();
coin.throwCoin(1000);
System.out.println("正面出现次数:"+ coin.getFront()+"、背面出现次数:"+ coin.getBack()) ;
}
}
class Coin{ //模拟硬币扔的操作
private int front ; //保存正面次数
private int back ; //保存背面的次数
private Random random = new Random();
/**
*扔硬币的处理
* @param num 扔硬币的执行次数
*/
public void throwCoin(int num) {
for(int x=0; x < num; x ++) {
int temp=random.nextInt(2);
if (temp == 0) {
this.front ++ ;
}else {
this.back ++ ;
}
}
}
public int getFront() {
return this.front ;
}
public int getBack() {
return this.back ;
}
}
执行结果:
正面出现次数:485、背面出现次数:515
想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学