• java试题


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

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

        提示:使用String的方法indexOf、lastIndexOf、substring

    package com.company;
    
    
    import java.text.ParseException;
    import java.util.Scanner;
    
    public class test02 {
        public static void main(String[] args)  throws ParseException {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入日期:(格式如:**月**日****年)");
            String date = sc.next();
            int m =date.indexOf("");
            int d = date.indexOf("");
            String month = date.substring(0, m);
            String day = date.substring(m+1, d);
            String year = date.substring(d+1,date.length()-1);
            System.out.println(year+""+month+""+day+"");
    
        }
    
    }

    运行结果

    请输入日期:(格式如:**月**日****年)
    12月22日2019年
    2019年12月22日

     
    ========================================================================

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

    package com.company;
    
    import java.util.Scanner;
    
    public class test03 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个字符串");
            String str =sc.next();
            char[] cs =  str.toCharArray();/*把字符串转为字符数组;*/
            int i = 0;
            int j=  0;
            for (char c: cs){
                if(Character.isDigit(c))/*判断是否为数字*/
                    i++;
                else if (Character.isLetter(c))/*判断是否为字母*/
                    j++;
            }
            System.out.println("有"+i+"个数字"+j+"个字母");
    
        }
    }

    运行结果

    请输入一个字符串
    sdfsad6fsf685494
    有7个数字9个字母

    ========================================================================

    3.以下是一段歌词,请从这段歌词中统计出朋友出现的次数。

    "这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。  朋友一生一起走,那些日子不再有,     一 句 话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。";

      提示:使用String方法indexOf、substring。

    package com.company;
    
    public class test04 {
        public static void main(String[] args) {
            String s = "这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么," +
                    "真爱过才会懂,会寂寞会回首,终有梦终有你在心中。  朋友一生一起走," +
                    "那些日子不再有,     一 句 话,一辈子,一生情,一杯酒。朋友不曾孤单过," +
                    "一声朋友你会懂,还有伤,还有痛,还要走,还有我。";
            String key = "朋友";
            int startLen =  s.length();
            s = s.replace(key,"");
            int endLen = s.length();
            int iCount = (startLen-endLen)/key.length();
            System.out.println(key+"一共出现:"+iCount+"次");
        }
    }

    运行结果

    朋友一共出现:3次


    ========================================================================

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

     提示:将用户的聊天内容保存到一个字符串对象或一个StringBuilder对象中,然后与敏感词语类表(数组实现)进行比对。如果属于敏感词语,就过滤掉或替换掉。

    package com.company;
    
    import java.util.Scanner;
    
    public class test05 {
          static String[] cd ={"性", "色情", "爆炸", "恐怖", "枪", "军火"};
          public static  String filter(String str) {
              for (String s : cd) {
                  String x="";
                  for (int i = 0; i < s.length(); i++) {
                    x+="*";
                  }
                  if(str.contains(s)){
                      str=str.replace(s,x);
                  }
              }
              return str;
          }
        public static void main(String[] args) {
            String s = "我想看恐怖色情电爆炸影" ;
            System.out.println(test05.filter(s));
        }
        }

    运行结果

    我想看****电**影


    ========================================================================

    5.根据输入的年份、产品类型和随机数产生固定资产编号    即:固定资产编号=年份+0+产品类型+3位随机数       

                                                                          程序运行流程:请输入年份:                  

                           ……                  

                    请选择产品类型(1. 台式机 2. 笔记本 3. 其他):                  

                           ……                  

                         生成3位随机数                 

                          最后显示固定资产编号

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

    package com.company;
    import java.util.Scanner;
    
    public class test06 {
        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  day = sc.nextInt();
            int a = (int)(Math.random()*1000);
            System.out.println("产品编号为:" + year + "0" + day +a );
    
        }
    }

    运行结果

    请输入年份:
    2019
    请选择产品类型(1. 台式机 2. 笔记本 3. 其他)
    2
    产品编号为:201902437

    ========================================================================

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

    package com.company;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Scanner;
    
    /*
     *1 计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。
     */
    public class test07 {
        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();
    
    
          //把字符串类型解析为Date类型
            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+"周");
        }
    }

    运行结果

    请输入第一个日期(yyyy-MM-dd)
    2017-5-5
    请输入第二个日期(yyyy-MM-dd)
    2017-5-25
    两个日期相隔20天
    相隔2周

    第二种

    package lianxi;
    
    import java.util.Date;
    
    public class Lx6 {
    
        public static void main(String[] args) {
    //        1.计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。
            
            
            Date d = new Date(117, 11, 3);
            Date d2 = new Date(110, 1, 3);
            
            long l = Math.abs(d.getTime() - d2.getTime());
            
            System.out.println(l / 86400000);
            System.out.println(l / 86400000 / 7.0);
    
        }
    
    }

    运行结果

    2860
    408.57142857142856


    ========================================================================

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

    package com.company;
    
    import java.util.GregorianCalendar;
    
    public class test08 {
    
            public static void main(String[] args) {
                long a=System.currentTimeMillis();
                //系统开始执行的时间(返回以毫秒为单位的当前时间)
                GregorianCalendar g = new GregorianCalendar();
                //GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。
                for(int i=2000;i<2100;i++){
                    if(g.isLeapYear(i)){//常用方法的判断是不是闰年
                        System.out.println(i+"是闰年");
                    }
                }
                long end =System.currentTimeMillis();//系统执行后的时间
                System.out.println("计算机执行的时间是:"+(end-a));
            }
    
        }

    运行结果

    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是闰年
    计算机执行的时间是:20



    ========================================================================

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

    package com.company;
    
    import java.util.Scanner;
    
    public class test09 {
        public static void main(String[] args) {
            System.out.println("请输入一串字符串");
            Scanner sc = new Scanner(System.in);
            String str = sc.nextLine();
            char[] a =str.toCharArray();//把字符串转化为字符数组
            for (char c:a){
                if(Character.isUpperCase(c))//isUpperCase判断是否为大写
                    System.out.print(c+"");
            }
            System.out.println();
            for(char c: a){
                if(Character.isLowerCase(c))//isLowerCase判断是否为小写
                    System.out.print(c+"");
            }
        }
    }

    运行结果

    adADAS
    ADAS
    ad


    ========================================================================


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

    package com.company;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    import java.util.Scanner;
    import java.util.concurrent.CancellationException;
    
    public class test10 {
        public static void main(String[] args) throws ParseException {
            System.out.println("输入一个日期如:(yyy-MM-dd)");
            Scanner s = new Scanner(System.in);
            String str = s.nextLine();
            SimpleDateFormat sd = new SimpleDateFormat("yyy-MM-dd");
            Date d = sd.parse(str);//将字符串类型的日期转化为Date类型
            Calendar c=Calendar.getInstance();
            c.setTime(d);//使用给定的Date设置此Calendar的时间
            int year=c.get(Calendar.YEAR);
            int yue =c.get(Calendar.MONTH)+1;
            int zhou =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 max =c.getActualMaximum(Calendar.DAY_OF_MONTH);//一个月中最大的天数
            if(zhou==0){
                System.out.println(yue+"月有"+max+"天"+"该日是"+"周日");
            }else{
                System.out.println(yue+"月有"+max+"天"+"该日是"+"周"+zhou);
            }
        }
    
        }

    运行结果:

    输入一个日期如:(yyy-MM-dd)
    2017-9-10
    2017是平年
    9月有30天该日是周日

    第二种

    package lianxi;
    
    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 Lx9 {
    
        public static void main(String[] args) throws ParseException {
    
    //        4.编写程序,(Scanner)当以年-月-日的格式输入一个日期时,输出其该年是否为闰年,该月有几天,该日是星期几
            Scanner sc = new Scanner(System.in);
            
            System.out.println("请输入:(格式:年-月-日)");
            String s = sc.nextLine();
            
            Date d = new SimpleDateFormat("yyyy-MM-dd").parse(s);
            
            Calendar c = Calendar.getInstance();
            c.setTime(d);
            
            GregorianCalendar gc = new GregorianCalendar();
            
            if (gc.isLeapYear(c.get(Calendar.YEAR))) {
                System.out.println("是闰年");
            }
            
            int max = c.getActualMaximum(Calendar.DAY_OF_MONTH);
            
            System.out.println(max);
                    
        }
    
    }


     


    ========================================================================

  • 相关阅读:
    Erlang 杂记 IV
    ASP.NET MVC的View是如何被呈现出来的?[设计篇]
    面向对象—在线文件管理模块
    软件开发中个人在团队里的效绩评定
    用go语言遍历文件夹
    磁盘缓存的算法:写算法
    一种Lua到C的封装
    从信息系统界面设计引发的思考
    基于Backbone.js的JavaScript MVC示例程序
    C和C++
  • 原文地址:https://www.cnblogs.com/songhuiqiang/p/10680663.html
Copyright © 2020-2023  润新知