• Java工具类练习题和答案


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

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

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

    package com.my.work;
    
    import java.util.Scanner;
    
    public class Date_1 {
        public static void main(String[] args) {
            Scanner s = new Scanner(System.in);
    
            System.out.println("请输入一个日期(格式如:**月**日****年)");
            String date = s.nextLine();
            System.out.println(date);
    
            int day = date.indexOf("日");//返回“日”的索引值
            String year = date.substring(day+1);//截取****年
            String date2 = date.substring(0,day+1);//截取**月**日
    
            String date3 = year+date2;
            System.out.println(date3);
    
    
        }
    
    }
    

      

    运行结果:
    
    请输入一个日期(格式如:**月**日****年)
    4月11日2019年
    4月11日2019年
    2019年4月11日
    

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

    方法一

    public class Work_2 {
        public static void main(String[] args) {
            int shuzi=0;
            int zimu=0;
            Scanner s = new Scanner(System.in);
            System.out.println("输入随机字符串:");
            String s1 = s.nextLine();
    
            char[] c = s1.toCharArray();
    
            for(int i=0;i<c.length;i++){
                if(c[i]>='0'&&c[i]<='9'){
                    shuzi++;
                }else if(c[i]>='a'&&c[i]<='z'||c[i]>='A'&&c[i]<='Z'){
                    zimu++;
                }
            }
    
            System.out.println("数字有"+shuzi+"个");
            System.out.println("字母有"+zimu+"个");
        }
    }
    

      

    运行结果:
    
    输入随机字符串:
    Zhang110Yuxian
    数字有3个
    字母有11个
    

      

    方法二

    package com.my.work;
    
    import java.util.Scanner;
    
    public class Work_2_2 {
        public static void main(String[] args) {
            Scanner s = new Scanner(System.in);
            System.out.println("请输入随机字符串");
            String s1 = s.nextLine();
            int num=0;//数字
            int zm=0;//字母
    
            char[] c = s1.toCharArray();
    
            for(char c1:c){
                if(Character.isDigit(c1)){
                    num++;//数字
                }else if (Character.isLetter(c1)){
                    zm++;//字母
                }
            }
            System.out.println("数字的个数:"+num+" "+"字母的个数:"+zm);
        }
    }
    

      

    请输入随机字符串
    Zhang110Yuxian000
    数字的个数:6 字母的个数:11
    

      

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

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

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

    方法一

    package com.my.work;
    
    public class Work_3 {
        public static void main(String[] args) {
            String s = "这些年一个人,风也过,雨也走,有过泪,有过错,"+
                       " 还记得坚持甚么,真爱过才会懂,会寂寞会回首," +
                       "终有梦终有你在心中。朋友一生一起走,那些日子不再有," +
                       "一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂," +
                       "还有伤,还有痛,还要走,还有我。";
            int num=0;
            getNumber(s,num);
    
        }
    
        public static void getNumber(String s,int num){
            int n = s.indexOf("朋友");
            if(n>=0){
                num++;
                s=s.substring(n+2);
                getNumber(s,num);
            }else{
                System.out.println("朋友出现的次数:"+num+"次");
            }
        }
    }
    

      

    运行结果:
    
    朋友出现的次数:3次
    

      

    方法二

    package com.my.work;
    
    public class Work_3_1 {
    
        public static void main(String[] args) {
    
            String s = "这些年一个人,风也过,雨也走,有过泪,有过错,"+
                    " 还记得坚持甚么,真爱过才会懂,会寂寞会回首," +
                    "终有梦终有你在心中。朋友一生一起走,那些日子不再有," +
                    "一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂," +
                    "还有伤,还有痛,还要走,还有我。";
        int i = s.indexOf("朋友");
        String s1= s;
        int num=0;
    
        for (int j=0;j<s.length();j++){
                if(i>0){
                    num++;
                    s1=s1.substring(i+1);
                    i=s1.indexOf("朋友");
                }
          }
            System.out.println("朋友的次数:"+num--+"次");
    
        }
    
    }
    

      

    运行结果:
    
    朋友的次数:3次
    

      

    方法三

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

      

    运行结果:
    
    朋友出现的次数:3次
    

      

    方法四

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

      

    运行结果:
    
    朋友出现的次数为:3次
    

      

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

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

    package com.my.work;
    
    import java.util.Scanner;
    
    public class Work_4 {
        public static void main(String[] args) {
            Scanner s = new Scanner(System.in);
            String[] s1 = {"性","色情","爆炸","恐怖","枪","军火"};
            System.out.println("输入一句话:");
            String  s2= s.nextLine();
    
            for (String a:s1){
                String a1 = "";
    
                if(s2.contains(a)){
                    for(int i=0;i<a.length();i++){
                        a1+="*";
                    }
                    s2=s2.replace(a,a1);
                }
    
            }
            System.out.println(s2);
        }
    }
    

      

    运行结果:
    
    输入一句话:
    不要谈性色变,不要接触色情,更不要动枪和军火,这很恐怖,会爆炸
    不要谈*色变,不要接触**,更不要动*和**,这很**,会**
    

      

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

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

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

    package com.my.work;
    
    import java.util.Scanner;
    
    public class Work_5 {
        public static void main(String[] args) {
            Scanner s = new Scanner(System.in);
            System.out.println("请输入年份:");
            String year = s.nextLine();
    
            System.out.println("请选择产品类型:(1.台式机  2.笔记本  3.其他)");
            String[] s1 = {"台式机","笔记本","其他"};
    
            Scanner s2 = new Scanner(System.in);
            System.out.println("请选择产品类型");
            int choose = s2.nextInt();
            choose -=1;
            int num = (int)(Math.random()*1000);
    
            System.out.println(year+s1[choose]+num);
        }
    }
    

      

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

      

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

    package com.my.work;
    
    public class Work_7 {
        public static void main(String[] args) {
    
            long start = System.currentTimeMillis();
            for (int i=2000;i<2100;i++){
                if(i%4==0){
                    System.out.println("21世纪所有的闰年:"+i);
                }
            }
            long end = System.currentTimeMillis();
            long run = end-start;
            System.out.println("程序运行时间为:"+run+"毫秒");
        }
    
    }
    

      

    运行结果:
    
    21世纪所有的闰年:2000
    21世纪所有的闰年:2004
    21世纪所有的闰年:2008
    21世纪所有的闰年:2012
    21世纪所有的闰年:2016
    21世纪所有的闰年:2020
    21世纪所有的闰年:2024
    21世纪所有的闰年:2028
    21世纪所有的闰年:2032
    21世纪所有的闰年:2036
    21世纪所有的闰年:2040
    21世纪所有的闰年:2044
    21世纪所有的闰年:2048
    21世纪所有的闰年:2052
    21世纪所有的闰年:2056
    21世纪所有的闰年:2060
    21世纪所有的闰年:2064
    21世纪所有的闰年:2068
    21世纪所有的闰年:2072
    21世纪所有的闰年:2076
    21世纪所有的闰年:2080
    21世纪所有的闰年:2084
    21世纪所有的闰年:2088
    21世纪所有的闰年:2092
    21世纪所有的闰年:2096
    程序运行时间为:1毫秒
    

      

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

    package com.my.work;
    
    import java.util.Scanner;
    
    public class Work_8 {
        public static void main(String[] args) {
            Scanner s = new Scanner(System.in);
            System.out.println("请输出一串大小写字母");
            String s1 = s.nextLine();
    
            char[] c = s1.toCharArray();
            for (char c1:c){
                if (Character.isUpperCase(c1)){
                    System.out.print(c1+" ");
                }
            }
            System.out.println();
            for (char c1:c){
                if (Character.isLowerCase(c1)){
                    System.out.print(c1+" ");
                }
            }
         }
    }
    

      

    请输出一串大小写字母
    ZhangYuxian
    Z Y 
    h a n g u x i a n 
    

      

  • 相关阅读:
    PHP unicode与普通字符串的相互转化
    PHP 日期之间所有日期
    PHP Excel导入日期单元格处理
    JS base64文件转化blob文件
    Mvc 刷新PartialView
    WebGL绘制变幻光斑
    WebGL笔记(四):初步封装
    WebGL笔记(目录)
    [JavaScript/canvas] 创建基于坐标访问的图形数据对象
    WebGL笔记(五):封装顶点和颜色等数组数据(二)
  • 原文地址:https://www.cnblogs.com/zyx110/p/10692738.html
Copyright © 2020-2023  润新知