试题
1.请根据控制台输入的特定日期格式拆分日期
package demo;
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入日期");
String in_date = scanner.next();
String day = "日";
String mouth = "月";
String year = "年";
int a = in_date.indexOf(day);
int b = in_date.indexOf(mouth);
int c = in_date.indexOf(year);
System.out.println(in_date.substring(c - 4, c) + "年" + in_date.substring(b - 2, b) + "月" + in_date.substring(a - 2, a) + "日");
/*
01月25日2019年
*/
}
}
2
package demo;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String date = scanner.next();
Pattern nb = Pattern.compile("[0-9]");
Pattern wd = Pattern.compile("[a-z]");
Pattern WD = Pattern.compile("[A-Z]");
int a = 0;
int b = 0;
for(int i = 0;i<date.length();i++){
String one = date.substring(i,i+1);
Matcher isWD = WD.matcher(one);
Matcher isNum = nb.matcher(one);
Matcher iswd = wd.matcher(one);
if(isNum.matches()){
a++;
}
if(isWD.matches()||iswd.matches()){
b++;
}
}
System.out.println("数字:"+a);
System.out.println("字母:"+b);
}
}
3.以下是一段歌词,请从这段歌词中统计出朋友出现的次数。
" 这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。 朋友一生一起走,那些日子不再有, 一 句 话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。";
提示:使用String方法indexOf、substring。
package demo;
public class test3 {
public static void main(String[] args) {
String sing = "这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。朋友一生一起走,那些日子不再有,一 句 话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。";
String[] aa = sing.split("朋友");
System.out.println("个数是:"+aa.length);
}
}
4.编写敏感词过滤程序 说明:在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。如“性”、“色情”、“爆炸”、“恐怖”、“枪”、“军火”等,这些都不可以在网上进行传播,需要过滤掉或者用其他词语替换掉。
提示:将用户的聊天内容保存到一个字符串对象或一个StringBuilder对象中,然后与敏感词语类表(数组实现)进行比对。如果属于敏感词语,就过滤掉或替换掉。
package demo;
//"爆炸""色情""恐怖""枪""军火");
public class test4 {
public static void main(String[] args) {
String in_it = "真性情,恐怖游轮,雷军火啦";
String arr[] = {"性","爆炸","色情","恐怖","枪","军火"};
for(int i =0;i<arr.length;i++){
in_it = in_it.replace(arr[i],"*");
}
System.out.println(in_it);
}
}
5.
根据输入的年份、产品类型和随机数产生固定资产编号 即:固定资产编号=年份+0+产品类型+3位随机数
程序运行流程:
请输入年份:
请选择产品类型(1.台式机 2.笔记本 3.其他):
生成3位随机数 最后显示固定资产编号
提示:3位随机数按如下方法产生: (int)(Math.random()*1000);
package demo;
import java.util.Random;
import java.util.Scanner;
public class test5 {
public static void main(String[] args) {
Random random = new Random();
int sad = random.nextInt(1000);
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份:");
int year = scanner.nextInt();
System.out.println("1.台式机 2.笔记本 3.其他");
int model = scanner.nextInt();
String a = String.valueOf(sad);
String b = String.valueOf(year);
String c = String.valueOf(model);
System.out.println(b+"0"+c+a);
}
}
6.计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。
package demo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class test6{
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();
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+"周");
}
}
7.计算并输出21世纪的闰年,计算程序的执行时间。
package demo;
import java.util.GregorianCalendar;
public class test7 {
public static void main(String[] args) {
long start = System.currentTimeMillis();
int num=0;
GregorianCalendar year = new GregorianCalendar();
for (int i=2000;i<2100;i++)
{
if (year.isLeapYear(i))
System.out.print(i+" ");
}
System.out.println();
long end = System.currentTimeMillis();
System.out.println("系统执行时间:"+(end-start)+"ms");
}
}
8.编写一个程序,设定一个有大小写字母的字符串,先将字符串的大写字符输出,再将字符串中的小写字符输出。
package demo;
import java.util.Scanner;
public class test8 {
public static void main(String[] args){
System.out.println("请输入字符串:");
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
char[] s = str.toCharArray();
System.out.print("小写字母: ");
for (char s1:s) {
if(Character.isLowerCase(s1))
System.out.print(s1+" ");
}
System.out.println();
System.out.print("大写字母:");
for (char s2:s) {
if (Character.isUpperCase(s2))
System.out.print(s2+" ");
}
System.out.println();
System.out.print("数字:");
for (char s3:s) {
if (Character.isDigit(s3))
System.out.print(s3+" ");
}
}
}
9.编写程序,(Scanner)当以年-月-日的格式输入一个日期时,输出其该年是否为闰年,该月有几天,该日是星期几
package demo;
import java.util.Calendar;
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Scanner;
public class test9 {
public static void main(String[] args) throws ParseException {
Scanner scan=new Scanner(System.in);
String input=scan.nextLine();
SimpleDateFormat fmt= new SimpleDateFormat("yyyy-M-d");
Date time=fmt.parse(input);
Calendar cal=Calendar.getInstance();
cal.setTime(time);
int year=cal.get(Calendar.YEAR);
System.out.println(year);
boolean flag=(year%4==0&&year%100!=0)||year%400==0;
String str=flag?year+"是闰年":year+"不是闰年";
System.out.println(str);
int weekInt=cal.get(Calendar.DAY_OF_WEEK);
switch(weekInt) {
case 1:
System.out.println("星期日");
break;
case 2:
System.out.println("星期一");
break;
case 3:
System.out.println("星期二");
break;
case 4:
System.out.println("星期三");
break;
case 5:
System.out.println("星期四");
break;
case 6:
System.out.println("星期五");
break;
case 7:
System.out.println("星期六");
break;
}
}
}