Date類 表示一個(gè)瞬間,就是一個(gè)時(shí)刻
*
* 構(gòu)造方法:
* public Date();//創(chuàng)建一個(gè)表示當(dāng)前系統(tǒng)時(shí)間的Date對(duì)象
* public Date(long time);//毫秒值,距離標(biāo)準(zhǔn)時(shí)間(1970.1.1 0點(diǎn)0點(diǎn)0秒)的毫秒值
*
* 成員方法:
* long getTime();//獲取當(dāng)前日期對(duì)象(Date對(duì)象)距離標(biāo)準(zhǔn)時(shí)間的毫秒值
*
* 毫秒值--->Date對(duì)象:public Date(long time)
* Date對(duì)象---->毫秒值 :long getTime();
*
* 第二個(gè)類:DateFormat 但是是一個(gè)抽象類 我們選擇用java提供的其子類:SimpleDateFormat
*
* 構(gòu)造方法:
* public SimpleDateFormat(String pattern);//以指定的模式 創(chuàng)建一個(gè)日期格式化對(duì)象
* 比如: 一個(gè)Date對(duì)象你想最后打印出來(lái)格式: "2017年06月05日 10點(diǎn)20分15秒"
*
* 成員方法:
* public String format(Date d);//把指定的Date對(duì)象 轉(zhuǎn)成一個(gè)字符串返回給你
* public Date parse(String time);//把給定String字符串解析成一個(gè)Date對(duì)象
public static void demo03() throws ParseException{
//一個(gè)Date對(duì)象你想最后打印出來(lái)格式: "2017年06月05日 10點(diǎn)20分15秒"
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//調(diào)用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(){
//看一下今天這個(gè)時(shí)刻 距離標(biāo)準(zhǔn)時(shí)間多少毫秒
Date d = new Date();
long l = d.getTime();
System.out.println(l);//1497401350108
}
Date:日期類,年月日時(shí)分秒
* Calendar:日歷類,年月日時(shí)分秒
* 我們發(fā)現(xiàn)Calendar是一個(gè)抽象類,不能用
* 而且我們也不用他的子類
*
* 獲取Calendar類對(duì)象的方式:
* public static Calendar getInstance();//返回一個(gè)Calendar的子類對(duì)象
* [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);//把日歷對(duì)象中的指定字段 改成指定的值
* 3.void add(int field,int amount);//把日歷對(duì)象中的指定字段 增加指定的值
* 4.public Date getTime();//把當(dāng)前日歷對(duì)象 轉(zhuǎn)成日期對(duì)象
*
* System類:系統(tǒng)類,java.lang
*
* 查閱API說(shuō) System這個(gè)類不能創(chuàng)建對(duì)象
*
* 方法:
* public static void exit(int code);//退出JVM,后面的參數(shù)寫(xiě)0 表示正常終止
* public static void gc();//通知JVM的垃圾回收器 過(guò)來(lái)收破爛
* public static String getProperty(String key);//獲取系統(tǒng)的某一個(gè)屬性
* public static long currentTimeMillis();//獲取當(dāng)前時(shí)間毫秒值
*
*
* Math類:有關(guān)數(shù)學(xué)運(yùn)算的類
*
* 1.public static double abs(double d);//取絕對(duì)值
* 2.public staic double max(double d1,double d2);//取較大值
* 3.public staic double min(double d1,double d2);/取較小值
*
* 4.public static double random();//返回一個(gè)隨機(jī)數(shù) 范圍[0.0,1.0)
*
* 5.public static long round(double d);//四舍五入,只判斷小數(shù)第一位
* 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集合 只能存儲(chǔ)引用類型
* java把8中基本類型? 對(duì)應(yīng)? 基本數(shù)據(jù)類型包裝類
* byte short char int long float double boolean
* Byte Short Character Integer Long Float Double? Boolean
* 定義一個(gè)存儲(chǔ)整數(shù)的集合 ArrayList<Integer> nums = new ....
* 另外一個(gè)作用:把一個(gè)字符串轉(zhuǎn)成對(duì)應(yīng)的基本類型的功能
* 比如:Integer.parseInt("20");
* 比如:Double.parseDouble("99.99");
*
* 自動(dòng)裝箱拆箱
*
* 裝箱: 把基本類型 ---->對(duì)應(yīng)的包裝類型
*
* 拆箱: 包裝類型----->對(duì)應(yīng)基本類型
*
* 而且以上的步驟不許要程序干預(yù),JVM自動(dòng)判斷 自動(dòng)拆裝箱
*
* 總結(jié):基本數(shù)據(jù)類型類型和對(duì)應(yīng)包裝類型 我們?cè)匍_(kāi)中一視同仁
? 正則表達(dá)式:
* 不是java的東西,所有編程語(yǔ)言都可以用的東西
* 正則表達(dá)式 是一個(gè)特殊字符串,正則表達(dá)式字符串內(nèi)容 表示一個(gè)規(guī)則
*
* "正則表達(dá)式"--->代表一個(gè)規(guī)則
*
* true----> "普通的字符串a(chǎn)bc.." 匹配上了 "正則表達(dá)式"
* false---> "普通的字符串a(chǎn)bc.."? 沒(méi)有匹配上了 "正則表達(dá)式"
*
* 在字符串類String中 有一個(gè)方法 matchs和split
* public boolean matches(String regex);
* public String[] split(String regex)根據(jù)給定正則表達(dá)式的匹配拆分此字符串控淡。
*
* 例題1:
* 校驗(yàn)qq號(hào)碼.
*
*
public class RegexDemo01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
splitDemo02();
}
/*
* 用正則表達(dá)式切分字符串
*/
public static void splitDemo02(){
String ip = "192...168.....1.....1";
//寫(xiě)代碼 拿出 每一個(gè)數(shù)字
//正則表達(dá)式中 "."代表任意字符
//轉(zhuǎn)譯字符: \n? \t
//"\.":把"."的特殊含義去掉
String[] ips = ip.split("\\.+");//正則表達(dá)式中 兩個(gè)"\\"表示一個(gè)"\"
System.out.println(ips.length);
for (int i = 0; i < ips.length; i++) {
System.out.println(ips[i]);
}
}
/*
* 用正則表達(dá)式切分字符串
*/
public static void splitDemo(){
String s = "0218--3422---3540-----4565";
//寫(xiě)代碼 把每個(gè)短號(hào) 拿出來(lái) 輸出
//正則表達(dá)式中 "+"表示多個(gè)前面的元素
String[] nums = s.split("-+");
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}
}
/*
* 匹配手機(jī)號(hào)碼
* 1:要求為11位數(shù)字
* 2:第1位為1嫌吠,第2位為3、4掺炭、5辫诅、7、8中的一個(gè),
* 后面9位為0到9之間的任意數(shù)字涧狮。
*
*/
public static void phone(){
String num = "12838385438";
boolean b = num.matches("1[34578][0-9]{9}");//
System.out.println(b);
}
/*
* 使用正則表達(dá)式 檢驗(yàn)QQ號(hào)碼
* QQ號(hào)碼的規(guī)則:
* 1.必須都是數(shù)字
* 2.位數(shù)必須是5-12位
* 3.首位不能是0
*/
public static void QQ(){
//定義一個(gè)QQ號(hào)碼
String qq = "283834567765438";
//在正則表達(dá)式中 范圍 我們中括號(hào)表示
//在正則表達(dá)式中 個(gè)數(shù)用大括號(hào)
boolean b = qq.matches("[1-9][0-9]{4,11}");
System.out.println(b);
}
}
* 能夠理解正則表達(dá)式驗(yàn)證11位手機(jī)號(hào)碼
* 能夠理解正則表達(dá)式驗(yàn)證QQ號(hào)碼
*
* 能夠使用日期類輸出當(dāng)前的日期
* 構(gòu)造:
* public Date();
* public Date(long time);
* 成員方法:
* public long getTime();
* 能夠說(shuō)出將日期格式化成字符串的方法
* DateFormat----->SimpleDateFormat
* 構(gòu)造:
* public SimpleDateFormat(String pattern);//pattern模式,必須按照APi中給的字母填寫(xiě)
* 方法:
* Date對(duì)象--->String格式: public String format(Date d)
* String格式--->Date對(duì)象: public Date parse(String s);
*
* Calendar類:
* 獲取Calendar子類對(duì)象:
* public static Calendar getInstance();//實(shí)際返回的是Calendar的子類(公歷類)對(duì)象
* 方法:
* public void add(int field,int value);
* public void set(int field,int value);
* public int get(int field);
* public Date getTime();//返回值日歷對(duì)象 對(duì)應(yīng)的日期對(duì)象
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("請(qǐng)輸入你想查詢的年份:");
? ? ? ? ? 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)+"天");
}
}
/*
* 鍵盤(pán)錄入指定格式(yyyy-MM-dd)的任意日期,顯示出對(duì)應(yīng)的星期幾
*
* "E" 代表的是星期幾
*/
System.out.println("請(qǐng)輸入指定格式的:");
String s = new Scanner(System.in).nextLine();
//定義日期格式化對(duì)象,用于將用戶輸入的字符串轉(zhuǎn)換為日期對(duì)象
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//將字符串轉(zhuǎn)換為日期對(duì)象
Date d = df.parse(s);
//定義日期格式化對(duì)象,用于將日期對(duì)象轉(zhuǎn)換為指定的字符串形式的對(duì)象
SimpleDateFormat sdf = new SimpleDateFormat("E");
//解析日期對(duì)象為字符串形式
String str = sdf.format(d);
System.out.println(str);
計(jì)算字符串中所有數(shù)字的平均值.題目考察字符串的解析和引用類型轉(zhuǎn)換.
信息已給出 :
String s= " 第一組得分:92.8炕矮,第二組得分:88.8,第三組得分:95.4";
String s= "第一組得分:92.8,第二組得分:88.8,第三組得分:95.4";
//1.定義正則表達(dá)式,匹配數(shù)字和逗號(hào)以外的字符,并使用replaceAll方法,將字符串所有的數(shù)字以外的
//字符替換掉
String s1 = "第[一二三]組得分:";
String s2 = s.replaceAll(s1, "");
String[] s3 = s2.split(",");
double sum = 0;
//迭代數(shù)字,并將數(shù)字中德米一個(gè)元素都轉(zhuǎn)換為double類型后,求和
for (String string : s3) {
//sum += Integer.parseInt(string);
sum += Double.parseDouble(string);
//System.out.println(string);
}
//求平均數(shù)
double i =sum/(s3.length);
System.out.println(i);
* 寫(xiě)出基本數(shù)據(jù)類型對(duì)應(yīng)的八種包裝類
* int--->Integer
* char--->Character
* 寫(xiě)出字符串轉(zhuǎn)換成基本數(shù)據(jù)類型的方法
* Integer.parseInt("20");
* Double.parseDouble("99.95");
* 寫(xiě)出基本數(shù)據(jù)類型轉(zhuǎn)換成字符串方式
* 最簡(jiǎn)單的: 4+""===>"4"
* 能夠說(shuō)出拆箱裝箱概念
* 拆箱: 包裝類-->基本類型
* 裝箱: 基本類型-->包裝類
* 能夠掌握System類常見(jiàn)方法的使用
* public static long currentTimeMillis();//獲取當(dāng)前時(shí)間的毫秒值
* //不重要
* public void exit(0);//終止JVM
* public void gc();//告訴系統(tǒng)需要運(yùn)行系統(tǒng)的垃圾回收器
* public String getProperty(String key);//獲取一些系統(tǒng)有關(guān)屬性值
* 能夠使用Math類進(jìn)行數(shù)學(xué)運(yùn)算
* 1.public double random();//
* 2.public long round(double d);//把d參數(shù) 四舍五入
*
* 3.public double ceil(double d)//向上取整
* 4.public double floor(double d)//向下取整
*
* 5.public double pow(double d1,double d2);//求d2個(gè)d1相乘的積