1編寫一個Java方法,生成5個不重複的英文小寫字母,並按字母順序排列好。java
| //編寫一個Java方法,生成5個不重複的英文小寫字母,並按字母順序排列好。c++
public class Test8 {數組
public static void main(String[] args){dom
//生成的隨機數存放在數組中工具
char[]meth=new char[5];ui
for(int i=0;i<5;i++){this
Random ss=new Random();對象
//隨機生成英文字母,範圍是26 加97轉換爲小寫的英文字母排序
int aa=ss.nextInt(26)+97;索引
meth[i]=(char)aa;
System.out.println("排序以前"+meth[i]);
}
//排序的方法 升序排列
Arrays.sort(meth);
for(int i=0;i<meth.length;i++){
System.out.println("排序以後:"+meth[i]);
}
}
}
|
2. 隨機驗證碼。隨機生成十組六位字符組成的驗證碼。驗證碼由大小寫字母、數字字符組成
| public class Test9 {
public static void main(String[] args) {
meth();
}
public static void meth(){
for (int i=0; i <10; i++) {
for (int j=0; j < 2; j++) {
Random ss = new Random();
int srg = ss.nextInt(26) + 97;//小寫字母
int srf = ss.nextInt(26) + 65;//大寫字母
int srh = ss.nextInt(10) + 48;//數字
char aa = (char) srg;
char bb = (char) srf;
char cc = (char) srh;
System.out.print(aa+" "+bb+" "+cc+" ");
}
System.out.println();
}
}
}
|
3. 猜數字小遊戲,遊戲開始時,會隨機生成一個 1-100 之間的整數,玩家猜想一個數字,而後跟隨機生成的數字進行對比,大了系統提示大了,小了系統提示小了,直到玩家猜中,遊戲結束。
| public class Test3{
public static void main(String[]args){
Random arr=new Random();
int num=arr.nextInt(100);//隨機生成1到100 之間的整數
Scanner input=new Scanner(System.in);
while (true){
System.out.println("請玩家輸入一個數字");
int sum=input.nextInt();
if(sum>num){
System.out.println("大了");
}else if(sum<num){
System.out.println("小了");
}else if(num==sum) {
System.out.println("恭喜您猜中了");
break;
}
}
System.out.println("遊戲結束");
}
}
|
4. 鍵盤錄入學生信息,保存到集合中。循環錄入的方式,1:表示繼續錄入,0:表示結束錄入。定義學生類,屬性爲姓名,年齡,使用學生對象保存錄入數據。
使用ArrayList集合,保存學生對象,錄入結束後,遍歷集合。
| public class Test10 {
//定義一個全局的ArrayList<Stundent>list;
private ArrayList<Student> list;
public static void main(String[]args){
//建立當前類的對象,調用成員方法
Test10 test10=new Test10();
test10.display();
}
public void display() {
//使用ArrayList來保存Student對象
list = new ArrayList<>();
Student student = null;
while (true) {
//循環一次從新賦值
student = new Student();
Scanner sc = new Scanner(System.in);
System.out.println("請輸入學生的信息:1:表示繼續錄入,0:表示結束錄入");
int a = sc.nextInt();
//等於1的時候,表示繼續錄入
if(a==1) {
System.out.println("請錄入學生的姓名");
String name = sc.next();
System.out.println("請錄入學生的年齡");
int age = sc.nextInt();
//使用學生對象保存錄入的數據
student.setName(name);
student.setAge(age);
//保存學生對象到Arraylist集合中
list.add(student);
} else if (a == 0) {
//等於0時,表示錄入結束,錄入結束後遍歷集合
for (Student ss : list) {
System.out.println(ss.getName() + "====" + ss.getAge());
}
System.out.println("錄入完畢 OK-OK");
break;
} else {
System.out.println("你的輸入有誤");
break;
}
}
}
}
|
5. 集合工具類。 定義findIndex方法,在某集合中,查找某元素,返回第一次出現的索引。 定義replace方法,將某集合中的某元素,所有替換爲新元素。
| public class Test11 {
public static void main(String[] args) {
ArrayList<Integer>list=new ArrayList<>();
list.add(83);
list.add(72);
list.add(83);
list.add(83);
list.add(77);
list.add(75);
list.add(72);
list.add(72);
list.add(67);
list.add(65);
//建立當前類的對象
Test11 test11=new Test11();
System.out.println("72的索引是:"+test11.findIndex(list,72));
System.out.print("替換以前:[");
for(Integer ss:list){
System.out.print(+ss+" ");
}
System.out.print("]");
System.out.println();//換行
test11.replace(list,72,88);
System.out.print("替換以後:[");
for(Integer arg:list){
System.out.print(arg+" ");
}
System.out.print("]");
}
//list就是要查找的集合,aa就是要查找的元素
public int findIndex(ArrayList<Integer>list,int aa){
int index=-1;//表示沒有
for(int i=0;i<list.size();i++){
if(list.get(i)==aa){
index=i; //把下標給index,根據下標返回索引
break;
}
}
return index;
}
public void replace(ArrayList<Integer>list,int oldValue,int newValue){
for(int i=0;i<list.size();i++){
if(list.get(i)==oldValue){
//用指定的元素替換此列表中指定位置的元素
//根據下標給指定位置的元素設置值
list.set(i,newValue);
}
}
}
}
//運行的結果:
72的索引是:1
替換以前:[83 72 83 83 77 75 72 72 67 65 ]
替換以後:[83 88 83 83 77 75 88 88 67 65 ]
|
6統計數字出現次數。 定義getNumList方法,隨機生成100個數字,數字範圍從1到10。 定義printCount方法,統計每一個數字出現的次數並打印到控制檯。
| public class Test12 {
public static void main(String[] args){
//建立當前類的對象
Test12 meth=new Test12();
int[]ss=meth.getNumList();
for(int i=0;i<ss.length;i++){
System.out.println(ss[i]);
}
meth.printCount(ss);
}
public int[] getNumList(){
int[]aa=new int[100];
for(int i=0;i<100;i++){
Random r=new Random();
aa[i]=r.nextInt(10);
}
return aa;
}
public void printCount(int[]src){
//kongzhi
int num=0;
//由於代碼實現效果是10個數
for(int i=0;i<10;i++){
int count=0;
for(int j=0;j<src.length;j++){
if(src[j]==num){
count++;
}
}
num++;
System.out.println("數字:"+num+"出現了"+count+"次");
}
}
}
//運行的結果:
數字:1出現了7次
數字:2出現了10次
數字:3出現了12次
數字:4出現了13次
數字:5出現了11次
數字:6出現了4次
數字:7出現了7次
數字:8出現了11次
數字:9出現了16次
數字:10出現了9次
|
7. 模擬統計班級考試分數分佈狀況,分別統計100-80,79-60,59-40,39-0各個階段的人數。 定義getScoreList方法,隨機生成50個數字,數字範圍從0到100。 定義countScore方法,統計各個階段的分數個數。 定義printCount方法,打印各個階段的統計結果。
| public class Test13 {
public static void main(String[] args) {
//建立當前類的對象
Test13 sc=new Test13();
int[]meth=sc.getScoreList();
for(int i=0;i<meth.length;i++){
System.out.print(meth[i]+" ");
}
System.out.println();
sc.countScore(meth);
}
public int[] getScoreList(){
int[]meth=new int[50];
for(int i=0;i<50;i++){
Random ss=new Random();
meth[i]=ss.nextInt(100);//生成的範圍
}
return meth;
}
public void countScore(int[]sum){
int a=0;
int b=0;
int c=0;
int d=0;
for(int i=0;i<sum.length;i++){
if(sum[i]>=80&&sum[i]<=100){
a++;
}else if(sum[i]>=60&&sum[i]<=79){
b++;
}else if(sum[i]>=40&&sum[i]<=59){
c++;
}else if(sum[i]>0&&sum[i]<=39){
d++;
}
}
System.out.println("80--100分的個數:"+a+"人");
System.out.println("60--79分的個數:"+b+"人");
System.out.println("40--59分的個數:"+c+"人");
System.out.println("0--39分的個數:"+d+"人");
}
}
//運行的結果:
80--100分的個數:15
80--100分的個數:8
80--100分的個數:7
80--100分的個數:20
|
8. 隨機生成n張撲克牌。開發提示:使用集合保存全部的撲克牌對象。 從全部牌中,隨機移除n張牌,保存到新集合。 判斷n的值,不能超越一副撲克牌的範圍。
| public class Test14 {
public static void main(String[] args) {
//建立當前類的對象
Test14 srg=new Test14();
int n=10;
ArrayList<Card>meth=srg.MoveString(n);
if(meth!=null){
System.out.println("隨機第"+n+"張牌");
for(Card qq:meth){
System.out.print(qq.getHs()+""+qq.getDs()+" ");
}
}
}
//從全部牌中,隨機移除n張牌,保存到新集合。
public ArrayList<Card> MoveString(int n){
//此集合用來保存移除的牌
ArrayList<Card>list2=new ArrayList<>();
//判斷n的值,不能超越一副撲克牌的範圍。
if(n>54||n<0){
return null;
}else{
//此集合用來保存生成的全部的牌
ArrayList<Card>list3=getString();
Random ss=new Random();
for(int i=0;i<n;i++){ //隨機生成N張牌
int index=ss.nextInt(list3.size());//範圍是list集合中存儲的花色和點數
//remove方法是有返回值的,返回的就是當前移除的對象,移除誰返回誰。
Card card=list3.remove(index);//根據下標索引移除
//把移除的n張牌保存到新的集合中
list2.add(card);
}
}
return list2;
}
public ArrayList<Card> getString(){
//此集合用來保存生成的花色和點數
ArrayList<Card>list=new ArrayList<>();
String[]hs={"紅桃","黑桃","梅花","方片"};
String[]ds={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
for(int i=0;i<hs.length;i++){
for(int j=0;j<ds.length;j++){
//利用面向對象的知識
//建立目標類的對象,把花色和點數放在對象中
Card card=new Card(hs[i],ds[j]);
list.add(card);//把對象保存到list集合中
}
}
return list;
}
}
//利用面向對象的思路解決問題
public class Card {
String hs;
String ds;
public Card(){
}
public Card(String hs,String ds){
this.hs=hs;
this.ds=ds;
}
public String getHs() {
return hs;
}
public void setHs(String hs) {
this.hs = hs;
}
public String getDs() {
return ds;
}
public void setDs(String ds) {
this.ds = ds;
}
}
//運行的結果
隨機第10張牌
梅花A 方片K 梅花4 方片2 方片6 梅花J 方片5 梅花2 紅桃5 方片10
|
9. 自定義MyList類,實現存取元素的功能。 定義add方法,能夠保存元素,添加MyList尾部。 定義remove方法,能夠獲取到最後添加的元素,並從MyList中移除該元素。 定義show方法,能夠展現MyList中的元素。
| import java.util.ArrayList;
public class MyList {
ArrayList<Integer>list=new ArrayList<>();
public void add(Integer a){
list.add(a);
}
public int remove(){
int move=list.remove(list.size()-1);
return move;
}
public void show(){
System.out.println(list);
}
public static void main(String[] args) {
//建立當前類的duix
MyList myList=new MyList();
for(int i=0;i<5;i++){
myList.add(i);
}
System.out.println("添加元素後:");
myList.show();
System.out.println("獲取元素:");
int num=myList.remove();
System.out.println(num);
//獲取元素後
myList.show();
}
}
//運行的結果:
添加元素後:
[0, 1, 2, 3, 4]
獲取元素:
4
[0, 1, 2, 3]
|
10. 模擬樂透號碼。 隨機生成10個號碼,範圍1-50,做爲樂透號碼。 鍵盤錄入10個整數,不能重複。 錄入的整數與樂透號碼對比,統計猜中了幾個。當使用ArrayList集合時,能夠經過contains方法,判斷某集合中是否包含某元素,方法示例以下:
| public class Test17 {
public static void main(String[] args) {
//建立當前類的對象
Test17 t=new Test17();
ArrayList<Integer>list=t.getString();
System.out.println("隨機生成的數是:");
for(int a:list){
System.out.print(a+" ");
}
System.out.println();
//用戶輸入的數
ArrayList<Integer>list2=t.setString();
System.out.println("用戶輸入的數"+list2);
System.out.println("隨機生成的數"+list);
System.out.println("猜中了"+t.stuName(list,list2)+"個數數字");
}
//此方法用來作對比,隨機生成的數和用戶輸入的數對比,看猜中的幾個
public int stuName(ArrayList<Integer> getString,ArrayList<Integer> setString){
int count=0;
for(int i=0;i<getString.size();i++){
int temp=getString.get(i);
if(setString.contains(temp)){
count++;
}
}
return count;
}
//鍵盤輸入的數
public ArrayList<Integer> setString(){
ArrayList<Integer>list1=new ArrayList<>();
Scanner r=new Scanner(System.in);
for(int i=0;i<10;i++){
System.out.println("請輸入數字");
int sum=r.nextInt();
//若是不包含就添加到list集合中
if(!list1.contains(sum)){
list1.add(sum);
}else{
System.out.println("重複數字無效");
i--;
}
}
return list1;
}
//隨機生成的數
public ArrayList<Integer> getString(){
ArrayList<Integer>list=new ArrayList<>();
Random ss=new Random();
for(int i=0;i<10;i++){
int num=ss.nextInt(50)+1;
//若是包含(true)則取相反,就變爲false
//也就是說不包含的話,就添加到集合中
if(!list.contains(num)){
list.add(num);
}else{
i--;
}
}
return list;
}
}
//運行的結果:
用戶輸入的數[23, 45, 65, 67, 78, 8, 76, 54, 43, 9]
隨機生成的數[36, 11, 26, 27, 46, 4, 44, 48, 2, 43]
猜中了1個數數字
|