java试题

本文介绍了使用Java处理日期格式转换、字符串分析及敏感词过滤等实用技巧,涵盖日期拆分、字符计数、敏感词替换、固定资产编号生成、日期间隔计算、闰年判断等多项功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.请根据控制台输入的特定日期格式拆分日期

如:请输入一个日期(格式如:日****年) 经过处理得到:****年

import java.awt.*;
import java.util.Scanner;
public class timu {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String fun = sc.nextLine();
        char[] arr = fun.toCharArray();
        int i;
        for ( i = fun.indexOf('年') - 4; i <= fun.indexOf('年'); i++) {
            System.out.print(arr[i]);
        }
        for ( i = fun.indexOf('月') - 2; i <= fun.indexOf('月'); i++) {
            System.out.print(arr[i]);
        }
        for ( i = fun.indexOf('日') - 2; i <= fun.indexOf('日'); i++) {
            System.out.print(arr[i]);
        }
    }
}

2.给出一个随机字符串,判断有多少字母?多少数字?

import java.util.Scanner;

public class timu_1 {
    public static void main(String[] args){
        Scanner sc= new Scanner(System.in);
        String fun = sc.nextLine();
        char[] arr= fun.toCharArray();
        int m=0,n=0;
        for(int i=0;i<arr.length;i++){
            if((arr[i]>=65&&arr[i]<=90)||arr[i]>=97&&arr[i]<=122){
                m++;
            }
            if(arr[i]>=48&&arr[i]<=56){
               n++;
            }



    }System.out.println("数字:"+n+"======="+"字母:"+m);
}
}

3.以下是一段歌词,请从这段歌词中统计出朋友出现的次数。
" 这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。 朋友一生一起走,那些日子不再有, 一 句 话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。";

import java.util.Scanner;

public class Test_1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String st = new String();
        st = sc.nextLine();
        char[] arr = st.toCharArray();
        int i, n = 0;
        for ( i = 0; i < st.length(); i++) {
            if (arr[i] == '朋' && arr[i+1] == '友') {
                n++;
                i++;
                continue;
            }
        }
        System.out.println(n);
    }
}

4.编写敏感词过滤程序 说明:在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。如“性”、“色情”、“爆炸”、“恐怖”、“枪”、“军火”等,这些都不可以在网上进行传播,需要过滤掉或者用其他词语替换掉。

public class Test_two {
    public static void main(String[] args)throws Exception{
        Scanner sc = new Scanner(System.in);
        File file = new File("E:\\xxx.txt");//存放敏感词的文档位置
       BufferedReader br = new BufferedReader(new FileReader(file));
        String s = sc.nextLine();
        String str;
        while((str=br.readLine())!=null){//一次读一行
            s = s.replace(str, "**");//过滤敏感词
        }
        System.out.println(s);//输出
    }
}

5.根据输入的年份、产品类型和随机数产生固定资产编号 即:固定资产编号=年份+0+产品类型+3位随机数
程序运行流程:
请输入年份:
请选择产品类型(1.台式机 2.笔记本 3.其他):
生成3位随机数 最后显示固定资产编号

提示:3位随机数按如下方法产生: (int)(Math.random()*1000);

import java.util.Scanner;

public class timu_5 {
    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  id = sc.nextInt();
       int x =(int)(Math.random()*1000);
        System.out.println(year+"0"+id+x);
    }
}

6.计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。

import java.text.SimpleDateFormat;
import java.util.Scanner;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Test_three {
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入第一个日期");//格式为yyyy-MM-dd 下同
        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 + "周");

    }
}

7.计算并输出21世纪的闰年,计算程序的执行时间。

import java.util.Scanner;
public class timu_7 {
    public static void main(String[] args){
        long startTime = System.nanoTime();
        for(int year=2000;year<=2100;year++){
            if(year%4==0&&year%100!=0||year%400==0){
                System.out.println(year);
            }
        }
     long endTime = System.nanoTime();
        System.out.println("程序运行时间"+(endTime-startTime)+"ns");//ms无法呈现出比较精确的时间
    }
}

8.编写一个程序,设定一个有大小写字母的字符串,先将字符串的大写字符输出,再将字符串中的小写字符输出。

import java.util.Scanner;

public class timu_6 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String line = sc.nextLine();
        char []arr = line.toCharArray();
        for(int i=0;i<arr.length;i++){
            if(arr[i]>=65&&arr[i]<=90){
                System.out.print(arr[i]);
            }
        }System.out.println(" ");
        for(int i=0;i<arr.length;i++){
            if(arr[i]>=95&&arr[i]<=122){
                System.out.print(arr[i]);
            }
        }
    }
}

9.编写程序,(Scanner)当以年-月-日的格式输入一个日期时,输出其该年是否为闰年,该月有几天,该日是星期几

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

public class Test_four {
    public static void main(String[] args) throws Exception{
        System.out.println("格式为yyyy-MM-dd");
        Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date d=sdf.parse(str);
        Calendar c=Calendar.getInstance();
        c.setTime(d);
        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);


    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值