常用工具类练习

1. 请根据控制台输入的特定日期格式拆分日期,如:请输入一个日期(格式如:**月**日****年),经过处理得到:****年**月**日
import java.util.Scanner;

public class One {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String a=sc.next();
int a1=a.indexOf("年");
int a2=a.indexOf("月");
int a3=a.indexOf("日");
String a4=a.substring(a3+1,a1+1);
String a5=a.substring(0,a3+1);
System.out.println(a4+a5);
}
}

运行结果:

3月3日2019年

2019年3月3日

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

public class Two {

    public static void main(String[] args){

        Scanner sc=new Scanner(System.in);

        String b=sc.next();

        char[] b1=b.toCharArray();

        int x=0,y=0;

        for(char b2:b1){

            if(Character.isLetter(b2)){

                x++;

            }else if(Character.isDigit(b2)){

                y++;

            }

        }

        System.out.println("字母的个数:"+x+"数字的个数:"+y);

    }

}

运行结果:

aaa45a

字母的个数:4数字的个数:2

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

方法一:

import com.sun.xml.internal.ws.util.StringUtils;

public class Three {

    public static void main(String[] args) {

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

        int num=0;

        for(int i=0;i<c.length()-1;i++){

            String cc=c.substring(i,i+2);

            if(cc.equals("朋友")){

                num++;

            }

        }

        System.out.println(num);

    }
}

运行结果:

3

方法二:

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

方法三:

public class Work_3_2 {

    public static void main(String[] args) {

        String s = "这些年一个人,风也过,雨也走,有过泪,有过错,"+

                " 还记得坚持甚么,真爱过才会懂,会寂寞会回首," +

                "终有梦终有你在心中。朋友一生一起走,那些日子不再有," +

                "一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂," +

                "还有伤,还有痛,还要走,还有我。";

        String[] s1 = s.split("朋友");

        System.out.println(s1.length-1));
} }

运行结果:

3

方法四:

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(count);
} }

运行结果:

3

4. 编写敏感词过滤程序 ,说明:在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤
public class Four {

    public static void main(String[] args){

        String[] d={"枪","爆炸","恐怖"};

//        Scanner sc=new Scanner(System.in);

//        String d1=sc.next();

       String d1=new String("不要拿枪,很恐怖,会爆炸");

        for(String d2:d){

             d1=d1.replace(d2,"**");

        }

        System.out.println(d1);

    }

}

运行结果:

不要拿**,很**,会**

5. 根据输入的年份、产品类型和随机数产生固定资产编号

即:固定资产编号=年份+0+产品类型+3位随机数

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

……

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

……

生成3位随机数

最后显示固定资产编号

提示:3位随机数按如下方法产生:

(int)(Math.random()*1000);

public class Five {

    public static void main(String[] args){

        System.out.println("请输入年份:");

        Scanner s =new Scanner(System.in);

        String e=s.next();

        System.out.println("请选择产品类型:1.台式机,2.笔记本,3.其他");

        Scanner s1 =new Scanner(System.in);

        String e1=s1.next();

        int e2=(int)(Math.random()*1000);

        String e3=Integer.toString(e2);

        String e4=e.concat(e1).concat(e3);

        System.out.println("固定资产编号为:"+e4);

    }

}
运行结果:

请输入年份:

2019

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

2

固定资产编号为:20192527

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

    public static void main(String[] args){

        String h=new String("aaSdEcWq");

        char[] h1=h.toCharArray();

        StringBuffer h3=new StringBuffer();

        StringBuffer h4=new StringBuffer();

        for(char h2:h1){

            if(Character.isUpperCase(h2)){

                h3.append(h2);

                h3.append(",");

            }else if(Character.isLowerCase(h2)){

                h4.append(h2);

                h4.append(",");

            }

        }

        System.out.println(h3);

        System.out.println(h4);

    }

}

运行结果:

S,E,W,

a,a,d,c,q,

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

    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毫秒

04-30 00:07