JAVA实验四
实验四一共八题,附上题目及完整代码。
7206
题目內容:
输入一个字符串,在输入一个字符
(1)在字符串中删除指定的字符并输出
(2)把(1)中得到的串逆序输出
输入输出说明:
输入:
goodagoodagood a
输出:
goodgoodgood
doogdoogdoog
代码编辑:
import java.util.Scanner;
public class Main {
public static String reverse(String str){
String r = "";
for(int i=str.length()-1;i>=0;i--){
r=r+str.charAt(i);
}
return r;
}
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
String str;
str=reader.next();
String ch;
ch=reader.next();
str=str.replace(ch,"");
System.out.println(str);
str=reverse(str);
System.out.println(str);
}
}
7207
题目內容:
输入多个字符串,直到输入end串结束,把这些字符串存入List类中,并按字典序排序后输出。
输入输出说明:
输入:
how are you i am fine and you end
输出:
am and are fine how i you you
代码编辑:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
List<String> list = new ArrayList<>();
String str;
while(!"end".equals(str= reader.next())){
list.add(str);
}
Collections.sort(list);
for(String u : list) {
System.out.printf(u+" ");
}
}
}
7208
题目內容:
输入一个组中选修java课的学生名单以end结束,在输入选修C++课的学生名单以end结束,输出同时选两门课的同学名单
输入输出说明:
略
代码编辑:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
String str;
List<String> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();
while(!"end".equals(str= reader.next())){
list1.add(str);
}
Collections.sort(list1);
while(!"end".equals(str= reader.next())){
list2.add(str);
}
Collections.sort(list2);
for(String u1 : list1) {
for(String u2 : list2) {
if(u2.equals(u1)) System.out.print(u1+" ");
}
}
}
}
7209
题目內容:
建立一个HashMap实例,key值为String类型(表示姓名),value值为Integer类型(表示对应的年龄)。输入n,然后输入n对,key,value值,依次用put方法存入HashMap实例。现在要求
(1)再输入已存入的某一key值,输出key对应的value值(输出结果第一行)
(2)然后按照key值排序,再输出key和value值
输入输出例子:
输入:
4
Kobe 24
Anthony 7
James 6
Durant 35
Kobe
输出:
24
Anthony=7
Durant=35
James=6
Kobe=24
输入输出说明:
略
代码编辑:
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner reader = new Scanner(System.in);
HashMap<String,Integer> map = new HashMap<>();
int n = reader.nextInt();
for(int i=0;i<n;i++){
String name = reader.next();
int age = reader.nextInt();
map.put(name,age);
}
String name = reader.next();
System.out.println(map.get(name));
Iterator<String> it = map.keySet().iterator();
TreeSet<String>tree = new TreeSet<>();
while(it.hasNext()){
tree.add(it.next());
}
it = tree.iterator();
while(it.hasNext()){
String k = it.next();
Integer v = map.get(k);
System.out.println(k+"="+v);
}
}
}
5895
题目內容:
输入n,计算1+2!+3!+…+n!(n是100以内的正整数!)
提示:用BigInteger完成
输入输出说明:
输入:
30
输出:
274410818470142134209703780940313
代码编辑:
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static BigInteger factor(int n){
BigInteger a = new BigInteger("1");
if(n==0) return a;
for(int i=2;i<=n;i++){
BigInteger temp = new BigInteger(String.valueOf(i));
a=a.multiply(temp);
}
return a;
}
public static void main(String[] args) {
BigInteger sum = new BigInteger("0");
Scanner reader = new Scanner(System.in);
int n = reader.nextInt();
int i=1;
do{
sum=sum.add(factor(i));
i++;
}while(i<=n);
System.out.println(sum);
}
}
7204
题目內容:
小红盼着放假,她天天计算距离放假(2019年7月12日)还有多少天。输入今天的时间输入格式如2019年4月21日,请你用程序输出今天(输入数据2019年4月21日)距离放假(2019年7月12日)的天数。
输入输出说明:
输入:包括年月日的时间:比如:2019年4月21日
输出:今天距离放假(2019年7月12日)的天数
代码编辑:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
String str = reader.next();
int y1=0;
int m1=0;
int d1=0;
for(int i=0;i<4;i++)
{
if(str.charAt(i)<='9'&&str.charAt(i)>='0') y1=y1*10+str.charAt(i)-'0';
}
m1=str.charAt(5)-'0';
for(int i=7;i<str.length();i++)
{
if(str.charAt(i)<='9'&&str.charAt(i)>='0') d1=d1*10+str.charAt(i)-'0';
}
//System.out.println(y1+" "+m1+" "+d1);
Calendar date1 = Calendar.getInstance();
date1.set(y1, m1-1, d1);
long mis1 = (long) date1.getTimeInMillis();
Calendar date2 = Calendar.getInstance();
date2.set(2019, 6, 12);
long mis2 = (long) date2.getTimeInMillis();
System.out.println((mis2-mis1)/1000/60/60/24);
}
}
5896
题目內容:
输入年月,输出该月份的日历页
输入输出说明:
输入:
2018 3
输出:
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
代码编辑:
import java.util.Calendar;
import java.util.Scanner;
class CalendarBean{
int year,month;
int day,weekDay;
CalendarBean(int year,int month){
this.year=year;
this.month=month;
}
public int [] getCalendar(){
int [] a =new int[42];
Calendar rili = Calendar.getInstance();
rili.set(year,month-1,1);
weekDay=rili.get(Calendar.DAY_OF_WEEK)-1;
day=0;
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) day=31;
if(month==4||month==6||month==9||month==11) day=30;
if(month==2){
if(((year%4==0)&&(year%100!=0))||(year%400==0)) day=29;
else day=28;
}
for(int i=weekDay,n=1;i<weekDay+day;i++){
a[i]=n;
n++;
}
return a;
}
}
public class Main{
public static void main(String args[]){
Scanner reader = new Scanner(System.in);
int year = reader.nextInt();
int month = reader.nextInt();
CalendarBean cb = new CalendarBean(year,month);
int [] a = cb.getCalendar();
for(int i=1;i<=cb.weekDay;i++){
System.out.printf(" ");
}
for(int i=cb.weekDay;i<cb.weekDay+cb.day;i++){
if(i%7==0) System.out.println();
System.out.printf("%5d",a[i]);
}
}
}
7205
题目內容:
参照ArrayList类的功能,创建自己的ArrayList类:MyArrayList.
输入输出说明:
a
代码编辑:
不会