简单java习题
1.请根据控制台输入的特定日期格式拆分日期
如:请输入一个日期(格式如:**月**日****年) 经过处理得到:****年**月**日
提示:使用String的方法indexOf、lastIndexOf、substring
提示:使用String的方法indexOf、lastIndexOf、substring
代码:
import java.util.Scanner;
public class StringDemo1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个日期");
String string1=sc.next();
int a=string1.indexOf("日");
String subString1=string1.substring(a+1,string1.length() );
String subString2=string1.substring(0, a+1);
String string2=subString1+subString2;
System.out.println(string2);
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个日期");
String string1=sc.next();
int a=string1.indexOf("日");
String subString1=string1.substring(a+1,string1.length() );
String subString2=string1.substring(0, a+1);
String string2=subString1+subString2;
System.out.println(string2);
}
2.给出一个随机字符串,判断有多少字母?多少数字?
import java.awt.geom.Area;
import java.util.Scanner;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String string1=sc.next();
char s[]=string1.toCharArray();
int strin=0;//统计字母
int num=0;//统计数字
int str=0;//统计其他字符
for(int i=0;i<s.length;i++) {
if(s[i]>='0'&&s[i]<='9')
num++;
else if(s[i]>='a'&&s[i]<='z'&&s[i]>='A'&&s[i]<='Z')
strin++;
else
str++;
}
System.out.println("数字有:"+num+"字母有:"+strin+"其他字符:"+str);
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String string1=sc.next();
char s[]=string1.toCharArray();
int strin=0;//统计字母
int num=0;//统计数字
int str=0;//统计其他字符
for(int i=0;i<s.length;i++) {
if(s[i]>='0'&&s[i]<='9')
num++;
else if(s[i]>='a'&&s[i]<='z'&&s[i]>='A'&&s[i]<='Z')
strin++;
else
str++;
}
System.out.println("数字有:"+num+"字母有:"+strin+"其他字符:"+str);
}
}
3.以下是一段歌词,请从这段歌词中统计出朋友出现的次数。 " 这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。 朋友一生一起走,那些日子不再有, 一 句 话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。"; 提示:使用String方法indexOf、substring。
代码:
public class Demo2 {
public static void main(String[] args) {
int a=0;
String string1 = new String("这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。 朋友一生一起走,那些日子不再有, 一 句 话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。");
while(string1.indexOf("朋友")>=0) {
string1=string1.substring(string1.indexOf("朋友")+"朋友".length(),string1.length());
a++;
}
System.out.println(a);
}
}
public static void main(String[] args) {
int a=0;
String string1 = new String("这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。 朋友一生一起走,那些日子不再有, 一 句 话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。");
while(string1.indexOf("朋友")>=0) {
string1=string1.substring(string1.indexOf("朋友")+"朋友".length(),string1.length());
a++;
}
System.out.println(a);
}
}
4.编写敏感词过滤程序 说明:在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。如“性”、“色情”、“爆炸”、“恐怖”、“枪”、“军火”等,这些都不可以在网上进行传播,需要过滤掉或者用其他词语替换掉。 提示:将用户的聊天内容保存到一个字符串对象或一个StringBuilder对象中,然后与敏感词语类表(数组实现)进行比对。如果属于敏感词语,就过滤掉或替换掉。
代码:
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String string1 = sc.next();
String string2 = new String();
string2=string1;
String[] string3=new String[] {"色情","暴力","枪支"};
for(int i=0;i<string2.length();i++) {
string2=string2.replace(string3[i], "*");//replace使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
}
System.out.println(string2);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String string1 = sc.next();
String string2 = new String();
string2=string1;
String[] string3=new String[] {"色情","暴力","枪支"};
for(int i=0;i<string2.length();i++) {
string2=string2.replace(string3[i], "*");//replace使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
}
System.out.println(string2);
}
}
5.根据输入的年份、产品类型和随机数产生固定资产编号 即:固定资产编号=年份+0+产品类型+3位随机数
程序运行流程:
请输入年份: 请选择产品类型(1.台式机 2.笔记本 3.其他):
生成3位随机数 最后显示固定资产编号 提示:3位随机数按如下方法产生: (int)(Math.random()*1000);
程序运行流程:
请输入年份: 请选择产品类型(1.台式机 2.笔记本 3.其他):
生成3位随机数 最后显示固定资产编号 提示:3位随机数按如下方法产生: (int)(Math.random()*1000);
代码:
import java.util.Scanner;
public class Demo5 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请选择产品类型");
System.out.println("1.台式机 2.笔记本 3.其他");
int a=sc.nextInt();
int b=(int)(Math.random()*1000);
System.out.println("请输入年份:");
String string1=sc.next();
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请选择产品类型");
System.out.println("1.台式机 2.笔记本 3.其他");
int a=sc.nextInt();
int b=(int)(Math.random()*1000);
System.out.println("请输入年份:");
String string1=sc.next();
switch(a){
case 1:
System.out.println(string1+"年"+1+"台式机"+b);
break;
case 2:
System.out.println(string1+"年"+2+"笔记本"+b);
break;
case 3:
System.out.println(string1+"年"+3+"其他"+b);
break;
}
}
}
case 1:
System.out.println(string1+"年"+1+"台式机"+b);
break;
case 2:
System.out.println(string1+"年"+2+"笔记本"+b);
break;
case 3:
System.out.println(string1+"年"+3+"其他"+b);
break;
}
}
}
6.计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。
代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
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);
String string1=sc.next();
String string2=sc.next();
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");//使得可以选择任意用户定义的日期——时间格式
SimpleDateFormat format2=new SimpleDateFormat("yyyy-MM-dd");
int days;
int weeks;
Date date= format.parse(string1);//format将指定的Date格式化为日期/时间字符串
Date date2= format2.parse(string2);//parse从给定的字符串开始解析文本,以生成一个日期
System.out.println(days=(int)((date2).getTime()-date.getTime())/(1000*3600*24));
System.out.println(weeks=(int)((date2).getTime()-date.getTime())/(1000*3600*24*7));
//getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
}
}
public static void main(String[] args) throws ParseException {
Scanner sc=new Scanner(System.in);
String string1=sc.next();
String string2=sc.next();
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");//使得可以选择任意用户定义的日期——时间格式
SimpleDateFormat format2=new SimpleDateFormat("yyyy-MM-dd");
int days;
int weeks;
Date date= format.parse(string1);//format将指定的Date格式化为日期/时间字符串
Date date2= format2.parse(string2);//parse从给定的字符串开始解析文本,以生成一个日期
System.out.println(days=(int)((date2).getTime()-date.getTime())/(1000*3600*24));
System.out.println(weeks=(int)((date2).getTime()-date.getTime())/(1000*3600*24*7));
//getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
}
}
7.计算并输出21世纪的闰年,计算程序的执行时间。
代码:
public class Demo7 {
public static void main(String[] args) {
long startime=System.nanoTime();
long startime1=System.currentTimeMillis();
for(int i=2000;i<3000;i++) {
if(i%4==0&&i%100!=0) {
System.out.println(i);
}
}
long endtime=System.nanoTime();
long endtime1=System.currentTimeMillis();
System.out.println(endtime-startime+"纳秒");
System.out.println(endtime1-startime1+"毫秒");
}
}
public static void main(String[] args) {
long startime=System.nanoTime();
long startime1=System.currentTimeMillis();
for(int i=2000;i<3000;i++) {
if(i%4==0&&i%100!=0) {
System.out.println(i);
}
}
long endtime=System.nanoTime();
long endtime1=System.currentTimeMillis();
System.out.println(endtime-startime+"纳秒");
System.out.println(endtime1-startime1+"毫秒");
}
}
8.编写一个程序,设定一个有大小写字母的字符串,先将字符串的大写字符输出,再将字符串中的小写字符输出。
代码:
public class Demo8 {
public static void main(String[] args) {
String string1=new String("AsDasdDa");
String string2=new String();
String string3=new String();
for(int i=0;i<string1.length();i++) {
char c=string1.charAt(i);
int asc=(int)c;
if(asc>=97)
string2+=c;
}
System.out.println("小写字符:"+string2);
for(int i=0;i<string1.length();i++) {
char c=string1.charAt(i);
int asc=(int)c;
if(asc<=90)
string3+=c;
}
System.out.println("大写字符:"+string3);
}
}
public static void main(String[] args) {
String string1=new String("AsDasdDa");
String string2=new String();
String string3=new String();
for(int i=0;i<string1.length();i++) {
char c=string1.charAt(i);
int asc=(int)c;
if(asc>=97)
string2+=c;
}
System.out.println("小写字符:"+string2);
for(int i=0;i<string1.length();i++) {
char c=string1.charAt(i);
int asc=(int)c;
if(asc<=90)
string3+=c;
}
System.out.println("大写字符:"+string3);
}
}
9.编写程序,(Scanner)当以年-月-日的格式输入一个日期时,输出其该年是否为闰年,该月有几天,该日是星期几
代码:
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;
public class Demo9 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String string1=sc.next();
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");//自定义日期格式
Date date=null;
try {
date=(Date) format.parse(string1);//格式化日期
}
catch(ParseException e) {
e.printStackTrace();
}
Calendar c=Calendar.getInstance();//把Date类型转化为Calendar类型 Calenda为抽象类
c.setTime(date);
//提取年
int year=c.get(Calendar.YEAR);
GregorianCalendar gc=new GregorianCalendar();
if(gc.isLeapYear(year)) {
System.out.println(year+"是闰年");
}
else
System.out.println(year+"不是闰年");
//提取月,获得本月的最大天数
int day=c.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println("该月有"+day+"天");
//获取周几
int i=c.get(Calendar.DAY_OF_WEEK)-1;
String week="";
try {
week=pipei(i);
}
catch(Exception e) {
e.printStackTrace();
}
System.out.println("今天是周"+week);
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String string1=sc.next();
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");//自定义日期格式
Date date=null;
try {
date=(Date) format.parse(string1);//格式化日期
}
catch(ParseException e) {
e.printStackTrace();
}
Calendar c=Calendar.getInstance();//把Date类型转化为Calendar类型 Calenda为抽象类
c.setTime(date);
//提取年
int year=c.get(Calendar.YEAR);
GregorianCalendar gc=new GregorianCalendar();
if(gc.isLeapYear(year)) {
System.out.println(year+"是闰年");
}
else
System.out.println(year+"不是闰年");
//提取月,获得本月的最大天数
int day=c.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println("该月有"+day+"天");
//获取周几
int i=c.get(Calendar.DAY_OF_WEEK)-1;
String week="";
try {
week=pipei(i);
}
catch(Exception e) {
e.printStackTrace();
}
System.out.println("今天是周"+week);
}
public static String pipei(int i) throws Exception {
String s="";
switch(i) {
case 0:
s = "日";
break;
case 1:
s = "一";
break;
case 2:
s = "二";
break;
case 3:
s = "三";
break;
case 4:
s = "四";
break;
case 5:
s = "五";
break;
case 6:
s = "六";
break;
default:
throw new Exception("超出了正常一周范围");
String s="";
switch(i) {
case 0:
s = "日";
break;
case 1:
s = "一";
break;
case 2:
s = "二";
break;
case 3:
s = "三";
break;
case 4:
s = "四";
break;
case 5:
s = "五";
break;
case 6:
s = "六";
break;
default:
throw new Exception("超出了正常一周范围");
}
return s;
}
}
return s;
}
}