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