1.请根据控制台输入的特定日期格式拆分日期
如:请输入一个日期(格式如:**月**日****年) 经过处理得到:****年**月**日
提示:使用String的方法indexOf、lastIndexOf、substring
package com.company; import java.text.ParseException; import java.util.Scanner; public class test02 { public static void main(String[] args) throws ParseException { Scanner sc = new Scanner(System.in); System.out.println("请输入日期:(格式如:**月**日****年)"); String date = sc.next(); int m =date.indexOf("月"); int d = date.indexOf("日"); String month = date.substring(0, m); String day = date.substring(m+1, d); String year = date.substring(d+1,date.length()-1); System.out.println(year+"年"+month+"月"+day+"日"); } }
运行结果
请输入日期:(格式如:**月**日****年)
12月22日2019年
2019年12月22日
========================================================================
2.给出一个随机字符串,判断有多少字母?多少数字?
package com.company; import java.util.Scanner; public class test03 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个字符串"); String str =sc.next(); char[] cs = str.toCharArray();/*把字符串转为字符数组;*/ int i = 0; int j= 0; for (char c: cs){ if(Character.isDigit(c))/*判断是否为数字*/ i++; else if (Character.isLetter(c))/*判断是否为字母*/ j++; } System.out.println("有"+i+"个数字"+j+"个字母"); } }
运行结果
请输入一个字符串
sdfsad6fsf685494
有7个数字9个字母
========================================================================
3.以下是一段歌词,请从这段歌词中统计出朋友出现的次数。
"这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。 朋友一生一起走,那些日子不再有, 一 句 话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。";
提示:使用String方法indexOf、substring。
package com.company; public class test04 { public static void main(String[] args) { String s = "这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么," + "真爱过才会懂,会寂寞会回首,终有梦终有你在心中。 朋友一生一起走," + "那些日子不再有, 一 句 话,一辈子,一生情,一杯酒。朋友不曾孤单过," + "一声朋友你会懂,还有伤,还有痛,还要走,还有我。"; String key = "朋友"; int startLen = s.length(); s = s.replace(key,""); int endLen = s.length(); int iCount = (startLen-endLen)/key.length(); System.out.println(key+"一共出现:"+iCount+"次"); } }
运行结果
朋友一共出现:3次
========================================================================
4.编写敏感词过滤程序 说明:在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。如“性”、“色情”、“爆炸”、“恐怖”、“枪”、“军火”等,这些都不可以在网上进行传播,需要过滤掉或者用其他词语替换掉。
提示:将用户的聊天内容保存到一个字符串对象或一个StringBuilder对象中,然后与敏感词语类表(数组实现)进行比对。如果属于敏感词语,就过滤掉或替换掉。
package com.company; import java.util.Scanner; public class test05 { static String[] cd ={"性", "色情", "爆炸", "恐怖", "枪", "军火"}; public static String filter(String str) { for (String s : cd) { String x=""; for (int i = 0; i < s.length(); i++) { x+="*"; } if(str.contains(s)){ str=str.replace(s,x); } } return str; } public static void main(String[] args) { String s = "我想看恐怖色情电爆炸影" ; System.out.println(test05.filter(s)); } }
运行结果
我想看****电**影
========================================================================
5.根据输入的年份、产品类型和随机数产生固定资产编号 即:固定资产编号=年份+0+产品类型+3位随机数
程序运行流程:请输入年份:
……
请选择产品类型(1. 台式机 2. 笔记本 3. 其他):
……
生成3位随机数
最后显示固定资产编号
提示:3位随机数按如下方法产生: (int)(Math.random()*1000);
package com.company; import java.util.Scanner; public class test06 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入年份:"); int year = sc.nextInt(); System.out.println("请选择产品类型(1. 台式机 2. 笔记本 3. 其他)"); int day = sc.nextInt(); int a = (int)(Math.random()*1000); System.out.println("产品编号为:" + year + "0" + day +a ); } }
运行结果
请输入年份: 2019 请选择产品类型(1. 台式机 2. 笔记本 3. 其他) 2 产品编号为:201902437
========================================================================
6.计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。
package com.company; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; /* *1 计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。 */ public class test07 { public static void main(String[] args) throws ParseException { System.out.println("请输入第一个日期(yyyy-MM-dd)"); Scanner c =new Scanner(System.in); String str=c.nextLine(); System.out.println("请输入第二个日期(yyyy-MM-dd)"); String str1=c.nextLine(); //把字符串类型解析为Date类型 SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); Date d= sd.parse(str); Date d1=sd.parse(str1); long l =0; if(d.after(d1)){ l =d.getTime()-d1.getTime(); }else{ l=d1.getTime()-d.getTime(); } long a = 1000*60*60*24;//一天的时间 long day = l/a; long week = day/7; System.out.println("两个日期相隔"+day+"天"); System.out.println("相隔"+week+"周"); } }
运行结果
请输入第一个日期(yyyy-MM-dd) 2017-5-5 请输入第二个日期(yyyy-MM-dd) 2017-5-25 两个日期相隔20天 相隔2周
第二种
package lianxi; import java.util.Date; public class Lx6 { public static void main(String[] args) { // 1.计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。 Date d = new Date(117, 11, 3); Date d2 = new Date(110, 1, 3); long l = Math.abs(d.getTime() - d2.getTime()); System.out.println(l / 86400000); System.out.println(l / 86400000 / 7.0); } }
运行结果
2860 408.57142857142856
========================================================================
7.计算并输出21世纪的闰年,计算程序的执行时间。
package com.company; import java.util.GregorianCalendar; public class test08 { public static void main(String[] args) { long a=System.currentTimeMillis(); //系统开始执行的时间(返回以毫秒为单位的当前时间) GregorianCalendar g = new GregorianCalendar(); //GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。 for(int i=2000;i<2100;i++){ if(g.isLeapYear(i)){//常用方法的判断是不是闰年 System.out.println(i+"是闰年"); } } long end =System.currentTimeMillis();//系统执行后的时间 System.out.println("计算机执行的时间是:"+(end-a)); } }
运行结果
2000是闰年
2004是闰年
2008是闰年
2012是闰年
2016是闰年
2020是闰年
2024是闰年
2028是闰年
2032是闰年
2036是闰年
2040是闰年
2044是闰年
2048是闰年
2052是闰年
2056是闰年
2060是闰年
2064是闰年
2068是闰年
2072是闰年
2076是闰年
2080是闰年
2084是闰年
2088是闰年
2092是闰年
2096是闰年
计算机执行的时间是:20
========================================================================
8.编写一个程序,设定一个有大小写字母的字符串,先将字符串的大写字符输出,再将字符串中的小写字符输出。
package com.company; import java.util.Scanner; public class test09 { public static void main(String[] args) { System.out.println("请输入一串字符串"); Scanner sc = new Scanner(System.in); String str = sc.nextLine(); char[] a =str.toCharArray();//把字符串转化为字符数组 for (char c:a){ if(Character.isUpperCase(c))//isUpperCase判断是否为大写 System.out.print(c+""); } System.out.println(); for(char c: a){ if(Character.isLowerCase(c))//isLowerCase判断是否为小写 System.out.print(c+""); } } }
运行结果
adADAS
ADAS
ad
========================================================================
9.编写程序,(Scanner)当以年-月-日的格式输入一个日期时,输出其该年是否为闰年,该月有几天,该日是星期几
package com.company; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Scanner; import java.util.concurrent.CancellationException; public class test10 { public static void main(String[] args) throws ParseException { System.out.println("输入一个日期如:(yyy-MM-dd)"); Scanner s = new Scanner(System.in); String str = s.nextLine(); SimpleDateFormat sd = new SimpleDateFormat("yyy-MM-dd"); Date d = sd.parse(str);//将字符串类型的日期转化为Date类型 Calendar c=Calendar.getInstance(); c.setTime(d);//使用给定的Date设置此Calendar的时间 int year=c.get(Calendar.YEAR); int yue =c.get(Calendar.MONTH)+1; int zhou =c.get(Calendar.DAY_OF_WEEK)-1; GregorianCalendar g =new GregorianCalendar(); if(g.isLeapYear(year)){ System.out.println(year+"是闰年"); }else{ System.out.println(year+"是平年"); } int max =c.getActualMaximum(Calendar.DAY_OF_MONTH);//一个月中最大的天数 if(zhou==0){ System.out.println(yue+"月有"+max+"天"+"该日是"+"周日"); }else{ System.out.println(yue+"月有"+max+"天"+"该日是"+"周"+zhou); } } }
运行结果:
输入一个日期如:(yyy-MM-dd) 2017-9-10 2017是平年 9月有30天该日是周日
第二种
package lianxi; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Scanner; public class Lx9 { public static void main(String[] args) throws ParseException { // 4.编写程序,(Scanner)当以年-月-日的格式输入一个日期时,输出其该年是否为闰年,该月有几天,该日是星期几 Scanner sc = new Scanner(System.in); System.out.println("请输入:(格式:年-月-日)"); String s = sc.nextLine(); Date d = new SimpleDateFormat("yyyy-MM-dd").parse(s); Calendar c = Calendar.getInstance(); c.setTime(d); GregorianCalendar gc = new GregorianCalendar(); if (gc.isLeapYear(c.get(Calendar.YEAR))) { System.out.println("是闰年"); } int max = c.getActualMaximum(Calendar.DAY_OF_MONTH); System.out.println(max); } }
========================================================================