Java工具類練習題和答案


1.請根據控制台輸入的特定日期格式拆分日期

如:請輸入一個日期(格式如:**月**日****年)
經過處理得到:****年**月**日

提示:使用String的方法indexOf、lastIndexOf、substring

 

package com.my.work;

import java.util.Scanner;

public class Date_1 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);

        System.out.println("請輸入一個日期(格式如:**月**日****年)");
        String date = s.nextLine();
        System.out.println(date);

        int day = date.indexOf("日");//返回“日”的索引值
        String year = date.substring(day+1);//截取****年
        String date2 = date.substring(0,day+1);//截取**月**日

        String date3 = year+date2;
        System.out.println(date3);


    }

}

 

  

運行結果:

請輸入一個日期(格式如:**月**日****年)
4月11日2019年
4月11日2019年
2019年4月11日

 

2.給出一個隨機字符串,判斷有多少字母?多少數字?

方法一

 

public class Work_2 {
    public static void main(String[] args) {
        int shuzi=0;
        int zimu=0;
        Scanner s = new Scanner(System.in);
        System.out.println("輸入隨機字符串:");
        String s1 = s.nextLine();

        char[] c = s1.toCharArray();

        for(int i=0;i<c.length;i++){
            if(c[i]>='0'&&c[i]<='9'){
                shuzi++;
            }else if(c[i]>='a'&&c[i]<='z'||c[i]>='A'&&c[i]<='Z'){
                zimu++;
            }
        }

        System.out.println("數字有"+shuzi+"個");
        System.out.println("字母有"+zimu+"個");
    }
}

 

  

運行結果:

輸入隨機字符串:
Zhang110Yuxian
數字有3個
字母有11個

  

方法二

 

package com.my.work;

import java.util.Scanner;

public class Work_2_2 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.println("請輸入隨機字符串");
        String s1 = s.nextLine();
        int num=0;//數字
        int zm=0;//字母

        char[] c = s1.toCharArray();

        for(char c1:c){
            if(Character.isDigit(c1)){
                num++;//數字
            }else if (Character.isLetter(c1)){
                zm++;//字母
            }
        }
        System.out.println("數字的個數:"+num+" "+"字母的個數:"+zm);
    }
}

 

  

請輸入隨機字符串
Zhang110Yuxian000
數字的個數:6 字母的個數:11

  

3.以下是一段歌詞,請從這段歌詞中統計出朋友出現的次數。

"這些年一個人,風也過,雨也走,有過淚,有過錯, 還記得堅持甚么,真愛過才會懂,會寂寞會回首,終有夢終有你在心中。
朋友一生一起走,那些日子不再有,一句話,一輩子,一生情,一杯酒。朋友不曾孤單過,一聲朋友你會懂,還有傷,還有痛,還要走,還有我。";

提示:使用String方法indexOf、substring。

 

 

 

 

方法一

 

package com.my.work;

public class Work_3 {
    public static void main(String[] args) {
        String s = "這些年一個人,風也過,雨也走,有過淚,有過錯,"+
                   " 還記得堅持甚么,真愛過才會懂,會寂寞會回首," +
                   "終有夢終有你在心中。朋友一生一起走,那些日子不再有," +
                   "一句話,一輩子,一生情,一杯酒。朋友不曾孤單過,一聲朋友你會懂," +
                   "還有傷,還有痛,還要走,還有我。";
        int num=0;
        getNumber(s,num);

    }

    public static void getNumber(String s,int num){
        int n = s.indexOf("朋友");
        if(n>=0){
            num++;
            s=s.substring(n+2);
            getNumber(s,num);
        }else{
            System.out.println("朋友出現的次數:"+num+"次");
        }
    }
}

 

  

運行結果:

朋友出現的次數:3次

  

方法二

 

package com.my.work;

public class Work_3_1 {

    public static void main(String[] args) {

        String s = "這些年一個人,風也過,雨也走,有過淚,有過錯,"+
                " 還記得堅持甚么,真愛過才會懂,會寂寞會回首," +
                "終有夢終有你在心中。朋友一生一起走,那些日子不再有," +
                "一句話,一輩子,一生情,一杯酒。朋友不曾孤單過,一聲朋友你會懂," +
                "還有傷,還有痛,還要走,還有我。";
    int i = s.indexOf("朋友");
    String s1= s;
    int num=0;

    for (int j=0;j<s.length();j++){
            if(i>0){
                num++;
                s1=s1.substring(i+1);
                i=s1.indexOf("朋友");
            }
      }
        System.out.println("朋友的次數:"+num--+"次");

    }

}

 

  

運行結果:

朋友的次數:3次

  

方法三

 

package com.my.work;

public class Work_3_2 {
    public static void main(String[] args) {
        String s = "這些年一個人,風也過,雨也走,有過淚,有過錯,"+
                " 還記得堅持甚么,真愛過才會懂,會寂寞會回首," +
                "終有夢終有你在心中。朋友一生一起走,那些日子不再有," +
                "一句話,一輩子,一生情,一杯酒。朋友不曾孤單過,一聲朋友你會懂," +
                "還有傷,還有痛,還要走,還有我。";


        String[] s1 = s.split("朋友");
        System.out.println("朋友出現的次數:"+(s1.length-1)+"次");

    }
}

 

  

運行結果:

朋友出現的次數:3次

  

方法四

 

package com.my.work;

public class Work_3_4 {
    public static void main(String[] args) {
        String s = "這些年一個人,風也過,雨也走,有過淚,有過錯,"+
                " 還記得堅持甚么,真愛過才會懂,會寂寞會回首," +
                "終有夢終有你在心中。朋友一生一起走,那些日子不再有," +
                "一句話,一輩子,一生情,一杯酒。朋友不曾孤單過,一聲朋友你會懂," +
                "還有傷,還有痛,還要走,還有我。";

        String key ="朋友";

        int start = s.length();
        String s1 = s.replace(key,"");
        int end = s1.length();
        int count = (start-end)/key.length();
        System.out.println(key+"出現的次數為:"+count+"次");

    }
}

 

  

運行結果:

朋友出現的次數為:3次

  

4.編寫敏感詞過濾程序
說明:在網絡程序中,如聊天室、聊天軟件等,經常需要對一些用戶所提交的聊天內容中的敏感性詞語進行過濾。如“性”、“色情”、“爆炸”、“恐怖”、“槍”、“軍火”等,這些都不可以在網上進行傳播,需要過濾掉或者用其他詞語替換掉。

提示:將用戶的聊天內容保存到一個字符串對象或一個StringBuilder對象中,然后與敏感詞語類表(數組實現)進行比對。如果屬於敏感詞語,就過濾掉或替換掉。

 

 

package com.my.work;

import java.util.Scanner;

public class Work_4 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String[] s1 = {"性","色情","爆炸","恐怖","槍","軍火"};
        System.out.println("輸入一句話:");
        String  s2= s.nextLine();

        for (String a:s1){
            String a1 = "";

            if(s2.contains(a)){
                for(int i=0;i<a.length();i++){
                    a1+="*";
                }
                s2=s2.replace(a,a1);
            }

        }
        System.out.println(s2);
    }
}

  

運行結果:

輸入一句話:
不要談性色變,不要接觸色情,更不要動槍和軍火,這很恐怖,會爆炸
不要談*色變,不要接觸**,更不要動*和**,這很**,會**

  

5.根據輸入的年份、產品類型和隨機數產生固定資產編號
即:固定資產編號=年份+0+產品類型+3位隨機數

程序運行流程:請輸入年份:
……
請選擇產品類型(1. 台式機 2. 筆記本 3. 其他):
……
生成3位隨機數
最后顯示固定資產編號

提示:3位隨機數按如下方法產生:
(int)(Math.random()*1000);

 

 

package com.my.work;

import java.util.Scanner;

public class Work_5 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.println("請輸入年份:");
        String year = s.nextLine();

        System.out.println("請選擇產品類型:(1.台式機  2.筆記本  3.其他)");
        String[] s1 = {"台式機","筆記本","其他"};

        Scanner s2 = new Scanner(System.in);
        System.out.println("請選擇產品類型");
        int choose = s2.nextInt();
        choose -=1;
        int num = (int)(Math.random()*1000);

        System.out.println(year+s1[choose]+num);
    }
}

 

  

請輸入年份:
2019
請選擇產品類型:(1.台式機  2.筆記本  3.其他)
請選擇產品類型
2
2019筆記本606

  

7.計算並輸出21世紀的閏年,計算程序的執行時間。

 

package com.my.work;

public class Work_7 {
    public static void main(String[] args) {

        long start = System.currentTimeMillis();
        for (int i=2000;i<2100;i++){
            if(i%4==0){
                System.out.println("21世紀所有的閏年:"+i);
            }
        }
        long end = System.currentTimeMillis();
        long run = end-start;
        System.out.println("程序運行時間為:"+run+"毫秒");
    }

}

 

  

運行結果:

21世紀所有的閏年:2000
21世紀所有的閏年:2004
21世紀所有的閏年:2008
21世紀所有的閏年:2012
21世紀所有的閏年:2016
21世紀所有的閏年:2020
21世紀所有的閏年:2024
21世紀所有的閏年:2028
21世紀所有的閏年:2032
21世紀所有的閏年:2036
21世紀所有的閏年:2040
21世紀所有的閏年:2044
21世紀所有的閏年:2048
21世紀所有的閏年:2052
21世紀所有的閏年:2056
21世紀所有的閏年:2060
21世紀所有的閏年:2064
21世紀所有的閏年:2068
21世紀所有的閏年:2072
21世紀所有的閏年:2076
21世紀所有的閏年:2080
21世紀所有的閏年:2084
21世紀所有的閏年:2088
21世紀所有的閏年:2092
21世紀所有的閏年:2096
程序運行時間為:1毫秒

  

8.編寫一個程序,設定一個有大小寫字母的字符串,先將字符串的大寫字符輸出,再將字符串中的小寫字符輸出。

 

package com.my.work;

import java.util.Scanner;

public class Work_8 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.println("請輸出一串大小寫字母");
        String s1 = s.nextLine();

        char[] c = s1.toCharArray();
        for (char c1:c){
            if (Character.isUpperCase(c1)){
                System.out.print(c1+" ");
            }
        }
        System.out.println();
        for (char c1:c){
            if (Character.isLowerCase(c1)){
                System.out.print(c1+" ");
            }
        }
     }
}

 

  

請輸出一串大小寫字母
ZhangYuxian
Z Y 
h a n g u x i a n 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM