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;

持續更新…

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