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