Java实战应用中一些常用到的方法练习(持续更新...)

在这里插入图片描述

1,统计段落中出现某一个词的次数
2,一个随机字符串,判断有多少字母有多少数字
3,根据特定日期格式拆分日期
4,敏感词过滤程序
5,计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数
6,设定一个有大小写字母的字符串,先将字符串的大写字符输出,再将字符串中的小写字符输出
7,计算并输出21世纪的闰年,计算程序的执行时间
8,当以yyyy-MM-dd格式输入一个日期时,输出其该年是否为闰年,该月有几天,该日是星期几
9,生成UUID方法
10,List集合高效率去重
11,List集合转换成数组包括(Integer,String类型)
12,mysql 如何获取当前时间 前、后一小时的时间?
13,Java实现获取前N小时的时间
14,对实体类集合进行排序
15,实体类中Date时间类型返回接口变成字符串时间类型的,而不是时间戳
1,统计段落中出现某一个词的次数
    public static void wordCount(){
        Scanner scanner = new Scanner(System.in);
        int count = 0,index = 0;
        System.out.println("请输入句子:");
        String s = scanner.nextLine();
        System.out.println("请输入要查询的词:");
        String card = scanner.next();
        while ((index = s.indexOf(card,index)) != -1){
            index = index + card.length();
            count++;
        }
        System.out.println(card + "在句子中出现了"+ count + "次");
    }
2,一个随机字符串,判断有多少字母有多少数字
public static void letterAndnum(){
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入随机字符串:");
    String s = scanner.nextLine();
    int length = s.length();
    int num = 0,let = 0;
    for (int i = 0; i < length; i++){
        if (Character.isDigit(s.charAt(i))){
            num++;
        }
        if (Character.isLetter(s.charAt(i))){
            let++;
        }
    }
    System.out.println("数字:"+num+"   字母:"+let);
}
3,根据特定日期格式拆分日期
    //如:请输入一个日期(格式如:**月**日****年)经过处理得到: ****年**月**日
    public static void splitDate(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入日期:(格式如:**月**日****年)");
        String s = scanner.nextLine();
        int i = s.indexOf("日");
        String substring = s.substring(i + 1);
        String substring1 = s.substring(0, i + 1);
        System.out.println(substring + substring1);
    }
4,敏感词过滤程序

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

public static void fitterWords(){
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入聊天内容:");
    String str = scanner.nextLine();
    String ch[] = {"色情","爆炸","恐怖","军火"};
    for (String s:ch) {
        str = str.replaceAll(s,"*");
    }
    System.out.println("聊天内容:"+str);
}
5,计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数
public static void leadTime() throws ParseException {
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入第一个日期:");
    String str = scanner.nextLine();
    System.out.println("请输入第二个日期:");
    String str2 = scanner.nextLine();
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    Date parse = dateFormat.parse(str);
    Date parse1 = dateFormat.parse(str2);
    long a = 0;
    if (parse.after(parse1)){
        a = parse.getTime() - parse1.getTime();
    }else {
        a = parse1.getTime() - parse.getTime();
    }
    long oneDay = 1000*60*60*24;
    long day = a/oneDay;
    long week = day/7;
    System.out.println("相隔:"+day+" 天");
    System.out.println("相隔:"+week+" 周");
}
6,设定一个有大小写字母的字符串,先将字符串的大写字符输出,再将字符串中的小写字符输出
public static void letterUpperLower(){
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入字符串:");
    String str = scanner.nextLine();
    char[] chars = str.toCharArray();
    System.out.println("大写字母为:");
    for (char a:chars) {
        if (Character.isUpperCase(a)){
            System.out.println(a);
        }
    }
    System.out.println("小写字母为:");
    for (char a:chars) {
        if (Character.isLowerCase(a)){
            System.out.println(a);
        }
    }
}
7,计算并输出21世纪的闰年,程序的执行时间
public static void leapYeay21(){
    long start = System.currentTimeMillis();
    GregorianCalendar calendar = new GregorianCalendar();
    for (int i = 2000;i<2100;i++){
        if (calendar.isLeapYear(i)){
            System.out.println(i + "是闰年");
        }
    }
    long end = System.currentTimeMillis();
    System.out.println("程序的执行时间为:"+(end - start)+"毫秒");
}
8,当以yyyy-MM-dd格式输入一个日期时,输出其该年是否为闰年,该月有几天,该日是星期几
public static void isLeapYeay() throws ParseException {
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入日期:(格式:yyyy-MM-dd)");
    String str = scanner.nextLine();
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    Date parse = dateFormat.parse(str);
    Calendar instance = Calendar.getInstance();
    instance.setTime(parse);
    int year = instance.get(Calendar.YEAR);
    int month = instance.get(Calendar.MONTH)+1;
    int week = instance.get(Calendar.DAY_OF_WEEK)-1;
    GregorianCalendar calendar = new GregorianCalendar();
    if (calendar.isLeapYear(year)){
        System.out.println(year + "是闰年");
    }else{
        System.out.println(year + "是平年");
    }
    int max = instance.getActualMaximum(Calendar.DAY_OF_MONTH);
    String s = week == 0?"周日":"周"+week;
    System.out.println(month + "月有" + max + "日,该日是" + s);
}
9,生成UUID方法
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
10,List集合高效率去重

首先回顾一下LinkedHashSet:

LinkedHashSet继承HashSet且实现了LinkedHashMap,底层使用LinkedHashMap保存所有元素,其所有操作方法又和HashSet相同。

注意点:

1、LinkedHashSet 是 Set 的一个具体实现,其维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序可为插入顺序或是访问顺序。
2、如果我们需要迭代的顺序为插入顺序或者访问顺序,那么 LinkedHashSet 可优先考虑。

这里我们利用LinkedHashSet不能添加重复数据并能保证添加顺序的特性 去除List中重复元素:

	public List<String> removeDuplicate(List<String> list) {
           LinkedHashSet<String> set = new LinkedHashSet<String>(list.size());
           List<String> newList = new ArrayList<String>();
           set.addAll(list);
           newList.clear();
           newList.addAll(set);
           return newList;
    }
11,List集合转换成数组包括(Integer,String类型)
List<Integer> rpvList = new ArrayList<>();
List<String> stringList = new ArrayList<>();
int[] rpv = rpvList.stream().mapToInt(Integer::intValue).toArray();
String[] strings = stringList.toArray(new String[stringList.size()]);
12,mysql 如何获取当前时间 前、后N的时间?

(1)获取当前时间

select now(); 

(2)前N小时时间

select date_sub(now(), interval 1 hour);

(3)后N小时时间

select date_add(now(), interval 1 hour);

获取前N小时之内的时间,并按照小时进行分组
在这里插入图片描述

13,Java实现获取前N小时的时间
/**
 * @Description: 计算前N小时之内的时间
 * @Param: [ihour]
 * @return: java.util.List< java.lang.Integer>
 * @Author: XQD
 * @Date:2020/4/12 20:27
 */
public List<Integer> getBeforeByHourTime(int ihour){
    List<Integer> list=new ArrayList<>();
    try{
        for (int i=1;i<=ihour;i++){
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - i+1);
            SimpleDateFormat df = new SimpleDateFormat("HH");
            String hour = df.format(calendar.getTime());
            list.add(Integer.parseInt(hour));
        }
    }catch (Exception e){
        e.printStackTrace();
    }
    return list;
}
14,对实体类集合进行排序
List<VisitCountVO> visitCountVOS = new ArrayList<>();
Collections.sort(visitCountVOS, new Comparator<VisitCountVO>() {
            public int compare(VisitCountVO o1, VisitCountVO o2) {
                return o1.getHour().compareTo(o2.getHour());
            }
        });
15,实体类中Date时间类型返回接口变成字符串时间类型的,而不是时间戳
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JsonFormat(
        pattern = "yyyy-MM-dd HH:mm:ss",
        timezone = "GMT+8"
)
private Date visitTime;

持续更新…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章