日期類時間類,日期時間類,單例模式,裝箱與拆箱,數字類隨機數,BigDecimal總結

1.日期類,時間類,日期時間類

初步日期使用方法及格式轉換方法(舊方法):正則表達式

格式://Mon Jul 30 11:26:05 CST 2018             年月日時分秒    CST表明北京時間數組

獲取當前毫秒安全

Date date = new Date();

轉換時間格式:app

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String s = sdf.format(date);

日曆類的使用異步

Calendar c1 = Calendar.getInstance();
        int year = c1.get(c1.YEAR);
        int month = c1.get(c1.MONTH);

打印日曆示例(新方法:LocalDate時間類)函數

public static void getMonth(int year,int month){

        LocalDate date = LocalDate.of(year, month, 1);
        /**
         * 判斷月
         */
        int days = 0;
        if(month == 1 ||month == 3 ||month == 5||month == 7||month == 8 ||month == 10 || month == 12){
            days = 31;//31天    
        }else if(month == 2){
            //2月份
            if(date.isLeapYear()){
                days = 29;//29天
            }else{
                days = 28;//28天
            }
        }else{
            days = 30;//30天
        }
        //判斷當前月第一天是周幾
        int week = date.getDayOfWeek().getValue();
        /**
         * 一  二  三  四  五  六  日
         *           1 2 3 4 
         * 5 6
         */
        //第一行,打印"日  一  二  三  四  五  六"
        //第二行,打印,根據星期打印空格,
        //以後打印1--(30 31 28 29)
        System.out.println("日\t一\t二\t三\t四\t五\t六");
        //打印空格
        int count = 0;
        for (int i = 1; i < week; i++) {
            count++;
            System.out.print("\t");
        }
        //1 ---- 31 29 30
        for (int i = 1; i <=days; i++) {
            count++;//接着以前的空格計算
            System.out.print(i+"\t");//不換行打印
            if(count%7==0){//每行7個字符。換行
                System.out.println();
            }
        }
    }
    public static void main(String[] args) {
        getMonth(2018, 7);
        for(int i=1;i<=12;i++){
            System.out.println("\n*********************************************");
            getMonth(2019, i);
            System.out.println("\n*********************************************");
        }
    }

}

LocalDate 建立日期類,日期的格式化,快速建立日期的方法,獲取年月日,判斷閏年的方法ui

LocalTime 建立時間的類,時分秒的格式化spa

LocalDateTime日期時間類線程

DateTimeFormatter類-----"yyyy-MM-dd HH:mm:ss"code

能夠說,LocalDateTime裏能夠包含LocalDate類的信息和LocalTime類的信息

LocalDate使用示例:

//判斷當前年是不是閏年
        LocalDate localDate1 = LocalDate.now();
        boolean leapYear = localDate1.isLeapYear();
        //2001 1 1    快速的構建一個日期類LocalDate  of()方法去構建
        LocalDate ld2 = LocalDate.of(2001, 1, 1);

LocalTime使用舉例:用來返回當前時間

LocalDateTime dateTime = LocalDateTime.now();
        
        System.out.println(dateTime);
//格式化日期格式的類DateTimeFormatter
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyy-MM-dd HH:mm:ss");
        //把LocalDateTime類型轉化爲String字符串類型
        String strDateTime = dtf.format(dateTime);
//獲取當前月份,獲取當前年份,時分秒
        LocalDateTime date = LocalDateTime.now();
        date.getYear();
        date.getMonth();
        date.getHour();
        date.getMinute();
        date.getSecond();

2.String某些函數用法

//不區分大小寫判斷是否相等
str1.equalsIgnoreCase(str2)
//字符串是否包含另外一個串
str1.contains("a")
//找到字符串中下標爲1的字符
str1.charAt(1)
//截取字符串,包含前不包含後
String newStr = str.substring(1,5);
//按逗號分割成String數組
String[] ss =strs.split(",");
//trim()方法,只能去先後空格,中間空格去不掉
String s = str3.trim();
//檢查字符串的尾串是否是逗號
countstr.endsWith(",")
//替換全部的逗號爲空字符
countstr.replace(",","");
//最後一個點的位置
email.lastIndexOf(".")
//第一個@的位置
email.indexOf("@")

String與StringBuffer的區別

一、String的值不能夠改變,只能改變內存地址的指向。因此String類在修改字符串方面的效率較低。StringBuffer的值能夠改變,帶有緩衝區,方便進行內容修改。

二、String類中鏈接用’+’,而StringBuffer用append方法作數據鏈接

 

StringBuffer類中定義的方法所有使用同步定義,屬於線程安全操做

StringBuilder類沒有同步定義,都是異步方法,屬於非線程安全操做

 

String與StringBuffer相互轉換

StringBuffer strBuff = new StringBuffer("新字符串:");
        for (int i = 0; i < ss.length; i++) {
            strBuff.append(ss[i]+",");//將後面加上逗號,放入緩衝區
        }
        System.out.println(strBuff.toString());
        strBuff.deleteCharAt(strBuff.length()-1);
//去掉最後一個逗號,不用返回,直接拿strBuff操做
        System.out.println(strBuff.toString());
        //新字符串:今天,天氣真的不錯,咱們一塊兒去登山吧,好的
        char a[] = new char[]{'[','2','0','1','8',']'};
        strBuff.insert(0,a);
        //strBuff.insert(0, "[2018] ");
        System.out.println(strBuff.toString());

正則表達式用法

String reg = "^[0-9]{0,9}";//零到九
        //*全部
        //.佔位符
        boolean flag = "12".matches(reg);
        System.out.println(flag);

數字包裝類

包裝類解決了基本數據類型,不能使用對象的問題

一、  裝箱--->把基本數據類型轉化成相應的包裝類

Integer i = new Integer(a);
Integer i1 = new Integer("100");
Double d1 = new Double(b);
char c2 = new Character('a');

自動裝箱:

Integer iii = 1000;
Character c1 = 'a';
double b = 10.10;

二、  拆箱--->把包裝類轉化爲基本數據類型(自動拆箱和手動拆箱)

手動拆箱:

int i_3 = i1.intValue();
    double d_2 = d1.doubleValue();
boolean bool1_2 = bool1.booleanValue();

自動拆箱

int i__3 = i;
int i1__3 = i1;

三、  String和包裝類及基本數據類型的轉化

String str5 = "2312";
String str6 = "2345.23.23";
String str7 = "23.12d";
String str2 = "1000";
int ii2 = Integer.valueOf(str2);
//若是str5加上L字符,轉化將有異常
Long str5_1 = Long.valueOf(str5);
//出現多個點的話,轉化有錯誤
double str6_1 = Double.valueOf(str6);
相關文章
相關標籤/搜索