1.请根据控制台输入的特定日期格式拆分日期
如:请输入一个日期(格式如:**月**日****年) 经过处理得到:****年**月**日
提示:使用String的方法indexOf、lastIndexOf、substring
代码实现
package day04;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.println( "请输入一个日期:**月**日****年");
String s=input.next();
String m=s.substring(0,s.indexOf('日')+1);
String n=s.substring(s.indexOf('日')+1,11);
System.out.println(n+m);
}
}
运行结果
请输入一个日期:**月**日****年
04月28日2000年
2000年04月28日
04月28日2000年
2000年04月28日
Process finished with exit code 0
2.给出一个随机字符串,判断有多少字母?多少数字?
代码实现
package day04;
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String m = input.next();
char[] arr = m.toCharArray();
int a = 0, b = 0;
for (int i = 0; i < arr.length; i++) {
if ((arr[i] >= 65 && arr[i] <= 90) || arr[i] >= 97 && arr[i] <= 122) {
a++;
}
if(arr[i]>=48&&arr[i]<=57) {
b++;
}
}
System.out.println("字母"+a+"______________"+"数字"+b);
}
}
运行结果:
请输入一个字符串:
sjututtskh2645557shgjvgg
字母17______________数字7
sjututtskh2645557shgjvgg
字母17______________数字7
Process finished with exit code 0
3.以下是一段歌词,请从这段歌词中统计出朋友出现的次数。
" 这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。 朋友一生一起走,那些日子不再有, 一 句 话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。";
提示:使用String方法indexOf、substring。
" 这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。 朋友一生一起走,那些日子不再有, 一 句 话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。";
提示:使用String方法indexOf、substring。
代码实现:
package day04;
public class Demo3 {
public static void main(String[] args) {
String str="这些年一个人,风也过,雨也走,有过泪,有过错, " +
"还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。 " +
"朋友一生一起走,那些日子不再有, 一 句 话,一辈子,一生情,一杯酒。朋友不曾孤单过," +
"一声朋友你会懂,还有伤,还有痛,还要走,还有我。";
int a=0;
char[] arr = str.toCharArray();
int i=0;
while (i<str.length()) {
if(arr[i]=='朋'&&arr[i+1]=='友') {
a++;
i++;
continue;
}
i++;
}
System.out.println("朋友出现"+a+"次");
}
}
运行结果
朋友出现3次
Process finished with exit code 0
4.编写敏感词过滤程序 说明:在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。如“性”、“色情”、“爆炸”、“恐怖”、“枪”、“军火”等,这些都不可以在网上进行传播,需要过滤掉或者用其他词语替换掉。
提示:将用户的聊天内容保存到一个字符串对象或一个StringBuilder对象中,然后与敏感词语类表(数组实现)进行比对。如果属于敏感词语,就过滤掉或替换掉。
提示:将用户的聊天内容保存到一个字符串对象或一个StringBuilder对象中,然后与敏感词语类表(数组实现)进行比对。如果属于敏感词语,就过滤掉或替换掉。
代码实现:
package day04;
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str1 = sc.next();
String[] str3={"色情","暴力","枪支","傻逼"};
for(int i=0;i<str1.length()-1;i++) {
for (int j=0;j<str3.length;j++){
if(str1.substring(i,i+2).equals(str3[j])){
str1=str1.replace(str1.substring(i,i+2),"**");
}
}
}
System.out.println(str1);
}
}
运行结果:
一个傻逼走私了枪支被抓了。
一个**走私了**被抓了。
一个**走私了**被抓了。
Process finished with exit code 0
5.根据输入的年份、产品类型和随机数产生固定资产编号 即:固定资产编号=年份+0+产品类型+3位随机数
程序运行流程:
请输入年份:
请选择产品类型(1.台式机 2.笔记本 3.其他):
生成3位随机数 最后显示固定资产编号
提示:3位随机数按如下方法产生: (int)(Math.random()*1000);
代码实现:
package day04;
import java.util.Scanner;
public class Demo5 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入年份:");
int x=input.nextInt();
System.out.println("请选择产品:1.台式机 2.笔记本 3.其他");
int y=input.nextInt();
System.out.println(x+"0"+y+(int)(Math.random()*1000));
}
运行结果:
请输入年份:
2000
请选择产品:1.台式机 2.笔记本 3.其他
2
200002975
2000
请选择产品:1.台式机 2.笔记本 3.其他
2
200002975
Process finished with exit code 0
6.计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。
代码实现:
package day04;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Demo6 {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("输入第一个日期");
String str = sc.nextLine();
System.out.println("输入第二个日期");
String str1 = sc.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 + "周");
}
运行结果:
输入第一个日期
2000-04-28
输入第二个日期
2019-12-12
两个日期相隔7167天
相隔1023周
2000-04-28
输入第二个日期
2019-12-12
两个日期相隔7167天
相隔1023周
Process finished with exit code 0
package day04;
public class DEmo7 {
public static void main(String[] args) {
long start = System.nanoTime();
for(int year=2000;year<=2100;year++){
if(year%4==0&&year%100!=0||year%400==0){
System.out.println(year);
}
}
long end = System.nanoTime();
System.out.println("程序一共运行"+(end-start)+"ns");
}
}
运行结果:
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
程序一共运行1227566ns
2004
2008
2012
2016
2020
2024
2028
2032
2036
2040
2044
2048
2052
2056
2060
2064
2068
2072
2076
2080
2084
2088
2092
2096
程序一共运行1227566ns
Process finished with exit code 0
8.编写一个程序,设定一个有大小写字母的字符串,先将字符串的大写字符输出,再将字符串中的小写字符输出。
package day04;
import java.util.Scanner;
public class Demo8 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String str=input.next();
String str1=str.toUpperCase();
String str2=str.toLowerCase();
System.out.println("大写输出"+str1);
System.out.println("小写输出" + str2);
}
}
运行结果:
sfjgmSAEGSYFHydekugkuydfytd
大写输出SFJGMSAEGSYFHYDEKUGKUYDFYTD
小写输出sfjgmsaegsyfhydekugkuydfytd
大写输出SFJGMSAEGSYFHYDEKUGKUYDFYTD
小写输出sfjgmsaegsyfhydekugkuydfytd
Process finished with exit code 0
9.编写程序,(Scanner)当以年-月-日的格式输入一个日期时,输出其该年是否为闰年,该月有几天,该日是星期几
package day04;
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 Demo9 {
public static void main(String[] args) throws ParseException{
Scanner input=new Scanner(System.in);
System.out.println("请输入一个日期:");
String str =input.next();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date date=sdf.parse(str);
Calendar c=Calendar.getInstance();
c.setTime(date);
int year=c.get(Calendar.YEAR);
int month =c.get(Calendar.MONTH)+1;
int week =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 month_num =c.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println("该月有"+month_num+"天,"+"该日是周"+week);
}
}
运行结果:
请输入一个日期:
2018-12-12
2018 不是闰年
该月有31天,该日是周3
2018-12-12
2018 不是闰年
该月有31天,该日是周3
Process finished with exit code 0
浙公网安备 33010602011771号