java基础第十一篇之Date、Math、自动装箱和拆箱
Date類 表示一個瞬間,就是一個時刻
*
* 構造方法:
* public Date();//創建一個表示當前系統時間的Date對象
* public Date(long time);//毫秒值,距離標準時間(1970.1.1 0點0點0秒)的毫秒值
*
* 成員方法:
* long getTime();//獲取當前日期對象(Date對象)距離標準時間的毫秒值
*
* 毫秒值--->Date對象:public Date(long time)
* Date對象---->毫秒值 :long getTime();
*
* 第二個類:DateFormat 但是是一個抽象類 我們選擇用java提供的其子類:SimpleDateFormat
*
* 構造方法:
* public SimpleDateFormat(String pattern);//以指定的模式 創建一個日期格式化對象
* 比如: 一個Date對象你想最后打印出來格式: "2017年06月05日 10點20分15秒"
*
* 成員方法:
* public String format(Date d);//把指定的Date對象 轉成一個字符串返回給你
* public Date parse(String time);//把給定String字符串解析成一個Date對象
public static void demo03() throws ParseException{
//一個Date對象你想最后打印出來格式: "2017年06月05日 10點20分15秒"
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//調用sdf的format方法
Date d = new Date();
String dStr = sdf.format(d);
System.out.println(dStr);
String s = "2010-06-13 10:03:10";
Date sd = sdf.parse(s);
System.out.println(sd);
public static void demo02(){
//看一下今天這個時刻 距離標準時間多少毫秒
Date d = new Date();
long l = d.getTime();
System.out.println(l);//1497401350108
}
Date:日期類,年月日時分秒
* Calendar:日歷類,年月日時分秒
* 我們發現Calendar是一個抽象類,不能用
* 而且我們也不用他的子類
*
* 獲取Calendar類對象的方式:
* public static Calendar getInstance();//返回一個Calendar的子類對象
* [time=1497403287679,areFieldsSet=true,areAllFieldsSet=true,
* lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",
* offset=28800000,dstSavings=0,useDaylight=false,transitions=19,
* lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,
* YEAR=2017,MONTH=5,WEEK_OF_YEAR=24,WEEK_OF_MONTH=3,DAY_OF_MONTH=14,
* DAY_OF_YEAR=165,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=9,
* HOUR_OF_DAY=9,MINUTE=21,SECOND=27,MILLISECOND=679,ZONE_OFFSET=28800000,
* DST_OFFSET=0]
*
* 成員方法:
* 1.int get(int field);//獲取指定字段(成員變量)的值
* 2.void set(int field,int value);//把日歷對象中的指定字段 改成指定的值
* 3.void add(int field,int amount);//把日歷對象中的指定字段 增加指定的值
* 4.public Date getTime();//把當前日歷對象 轉成日期對象
*
* System類:系統類,java.lang
*
* 查閱API說 System這個類不能創建對象
*
* 方法:
* public static void exit(int code);//退出JVM,后面的參數寫0 表示正常終止
* public static void gc();//通知JVM的垃圾回收器 過來收破爛
* public static String getProperty(String key);//獲取系統的某一個屬性
* public static long currentTimeMillis();//獲取當前時間毫秒值
*
*
* Math類:有關數學運算的類
*
* 1.public static double abs(double d);//取絕對值
* 2.public staic double max(double d1,double d2);//取較大值
* 3.public staic double min(double d1,double d2);/取較小值
*
* 4.public static double random();//返回一個隨機數 范圍[0.0,1.0)
*
* 5.public static long round(double d);//四舍五入,只判斷小數第一位
* 6.public static double pow(double d1 ,double d2);//求d1的d2次冪
*
* 7.public static double floor(double d);//向下取整
* 8.public static double ceil(double d);//向上取整
* ArrayList集合 只能存儲引用類型
* java把8中基本類型 對應 基本數據類型包裝類
* byte short char int long float double boolean
* Byte Short Character Integer Long Float Double Boolean
* 定義一個存儲整數的集合 ArrayList<Integer> nums = new ....
* 另外一個作用:把一個字符串轉成對應的基本類型的功能
* 比如:Integer.parseInt("20");
* 比如:Double.parseDouble("99.99");
*
* 自動裝箱拆箱
*
* 裝箱: 把基本類型 ---->對應的包裝類型
*
* 拆箱: 包裝類型----->對應基本類型
*
* 而且以上的步驟不許要程序干預,JVM自動判斷 自動拆裝箱
*
* 總結:基本數據類型類型和對應包裝類型 我們再開中一視同仁
正則表達式:
* 不是java的東西,所有編程語言都可以用的東西
* 正則表達式 是一個特殊字符串,正則表達式字符串內容 表示一個規則
*
* "正則表達式"--->代表一個規則
*
* true----> "普通的字符串abc.." 匹配上了 "正則表達式"
* false---> "普通的字符串abc.." 沒有匹配上了 "正則表達式"
*
* 在字符串類String中 有一個方法 matchs和split
* public boolean matches(String regex);
* public String[] split(String regex)根據給定正則表達式的匹配拆分此字符串。
*
* 例題1:
* 校驗qq號碼.
*
*
public class RegexDemo01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
splitDemo02();
}
/*
* 用正則表達式切分字符串
*/
public static void splitDemo02(){
String ip = "192...168.....1.....1";
//寫代碼 拿出 每一個數字
//正則表達式中 "."代表任意字符
//轉譯字符: \n \t
//"\.":把"."的特殊含義去掉
String[] ips = ip.split("\\.+");//正則表達式中 兩個"\\"表示一個"\"
System.out.println(ips.length);
for (int i = 0; i < ips.length; i++) {
System.out.println(ips[i]);
}
}
/*
* 用正則表達式切分字符串
*/
public static void splitDemo(){
String s = "0218--3422---3540-----4565";
//寫代碼 把每個短號 拿出來 輸出
//正則表達式中 "+"表示多個前面的元素
String[] nums = s.split("-+");
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}
}
/*
* 匹配手機號碼
* 1:要求為11位數字
* 2:第1位為1,第2位為3、4、5、7、8中的一個,
* 后面9位為0到9之間的任意數字。
*
*/
public static void phone(){
String num = "12838385438";
boolean b = num.matches("1[34578][0-9]{9}");//
System.out.println(b);
}
/*
* 使用正則表達式 檢驗QQ號碼
* QQ號碼的規則:
* 1.必須都是數字
* 2.位數必須是5-12位
* 3.首位不能是0
*/
public static void QQ(){
//定義一個QQ號碼
String qq = "283834567765438";
//在正則表達式中 范圍 我們中括號表示
//在正則表達式中 個數用大括號
boolean b = qq.matches("[1-9][0-9]{4,11}");
System.out.println(b);
}
}
?
* 能夠理解正則表達式驗證11位手機號碼
* 能夠理解正則表達式驗證QQ號碼
*
* 能夠使用日期類輸出當前的日期
* 構造:
* public Date();
* public Date(long time);
* 成員方法:
* public long getTime();
* 能夠說出將日期格式化成字符串的方法
* DateFormat----->SimpleDateFormat
* 構造:
* public SimpleDateFormat(String pattern);//pattern模式,必須按照APi中給的字母填寫
* 方法:
* Date對象--->String格式: public String format(Date d)
* String格式--->Date對象: public Date parse(String s);
*
* Calendar類:
* 獲取Calendar子類對象:
* public static Calendar getInstance();//實際返回的是Calendar的子類(公歷類)對象
* 方法:
* public void add(int field,int value);
* public void set(int field,int value);
* public int get(int field);
* public Date getTime();//返回值日歷對象 對應的日期對象
public class Test1 {
public static void main(String[] args) throws Exception {
// int read = System.in.read();
// System.out.println(read);
Scanner dd=new Scanner(System.in);
System.out.println("請輸入你想查詢的年份:");
int year=dd.nextInt();
Calendar c=Calendar.getInstance();
// c.set(year, 2,0);
c.set(year, 2,1);
c.add(Calendar.DATE, -1);
System.out.println("這一年2月有"+ c.get(Calendar.DATE)+"天");
}
}
/*
* 鍵盤錄入指定格式(yyyy-MM-dd)的任意日期,顯示出對應的星期幾
*
* "E" 代表的是星期幾
*/
System.out.println("請輸入指定格式的:");
String s = new Scanner(System.in).nextLine();
//定義日期格式化對象,用于將用戶輸入的字符串轉換為日期對象
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//將字符串轉換為日期對象
Date d = df.parse(s);
//定義日期格式化對象,用于將日期對象轉換為指定的字符串形式的對象
SimpleDateFormat sdf = new SimpleDateFormat("E");
//解析日期對象為字符串形式
String str = sdf.format(d);
System.out.println(str);
計算字符串中所有數字的平均值.題目考察字符串的解析和引用類型轉換.
信息已給出 :
String s= " 第一組得分:92.8,第二組得分:88.8,第三組得分:95.4";
String s= "第一組得分:92.8,第二組得分:88.8,第三組得分:95.4";
//1.定義正則表達式,匹配數字和逗號以外的字符,并使用replaceAll方法,將字符串所有的數字以外的
//字符替換掉
String s1 = "第[一二三]組得分:";
String s2 = s.replaceAll(s1, "");
String[] s3 = s2.split(",");
double sum = 0;
//迭代數字,并將數字中德米一個元素都轉換為double類型后,求和
for (String string : s3) {
//sum += Integer.parseInt(string);
sum += Double.parseDouble(string);
//System.out.println(string);
}
//求平均數
double i =sum/(s3.length);
System.out.println(i);
* 寫出基本數據類型對應的八種包裝類
* int--->Integer
* char--->Character
* 寫出字符串轉換成基本數據類型的方法
* Integer.parseInt("20");
* Double.parseDouble("99.95");
* 寫出基本數據類型轉換成字符串方式
* 最簡單的: 4+""===>"4"
* 能夠說出拆箱裝箱概念
* 拆箱: 包裝類-->基本類型
* 裝箱: 基本類型-->包裝類
* 能夠掌握System類常見方法的使用
* public static long currentTimeMillis();//獲取當前時間的毫秒值
* //不重要
* public void exit(0);//終止JVM
* public void gc();//告訴系統需要運行系統的垃圾回收器
* public String getProperty(String key);//獲取一些系統有關屬性值
* 能夠使用Math類進行數學運算
* 1.public double random();//
* 2.public long round(double d);//把d參數 四舍五入
*
* 3.public double ceil(double d)//向上取整
* 4.public double floor(double d)//向下取整
*
* 5.public double pow(double d1,double d2);//求d2個d1相乘的積
轉載于:https://www.cnblogs.com/haizai/p/11071928.html
總結
以上是生活随笔為你收集整理的java基础第十一篇之Date、Math、自动装箱和拆箱的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu 根目录作用
- 下一篇: maven overlay 扩展