版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
進(jìn)度計(jì)
學(xué)時(shí)教學(xué)方法與手段
授課內(nèi)容劃
分配
課堂講授(學(xué)時(shí))上機(jī)實(shí)踐(學(xué)時(shí))(周次)
Java語后入IJ
標(biāo)識(shí)符、關(guān)鍵字和數(shù)據(jù)類型6421?2
運(yùn)算符、表達(dá)式和語句
類與對(duì)象141042?5
子類與繼承6425-7
接口與實(shí)現(xiàn)4227-8
內(nèi)部類與異常類2208
常用實(shí)用類6429-10
組件及事件處理64210-11
輸入、輸出流22012
JDBC與MySQL數(shù)據(jù)庫(kù)42212-13
Java多線程機(jī)制22013
Java網(wǎng)絡(luò)的基本知識(shí)22014
總結(jié)22014
總學(xué)時(shí)564016
各章教學(xué)實(shí)施計(jì)劃
章節(jié)題目第8章常用實(shí)用類學(xué)時(shí)
2
8.1節(jié)一8.3節(jié)
教學(xué)目的、要求(分了解、理解、掌握三個(gè)層次):
掌握String類、StringTokenizer類、Scanner類的常用方法。
教學(xué)內(nèi)容(包括基本內(nèi)容、重點(diǎn)、難點(diǎn)):
基本內(nèi)容:
?String類
?StringTokenizer類
?Scanner類
重點(diǎn):掌握String類,StringTokenizer類、Scannner類的使用。
難點(diǎn):StringTokenizer類、Scannner。
討論、思考題、作業(yè):
習(xí)題82(1),(3),(4)3(1)-(5)
預(yù)習(xí)第8章8.4-8.12節(jié)
參考書目(含參考書、文獻(xiàn)等)具體內(nèi)容:
參考書對(duì)應(yīng)章節(jié)
課堂教學(xué)實(shí)施計(jì)劃
教學(xué)過程設(shè)計(jì):復(fù)習(xí)________一分鐘;授新課95一分鐘
第13課
討論.5一分鐘;其它_________一分鐘
授課類型(請(qǐng)打J):理論課J討論課口實(shí)驗(yàn)課口習(xí)題課口其它口
教學(xué)方式(請(qǐng)打J):講授J討論口示教口指導(dǎo)口其它口
教學(xué)手段(請(qǐng)打J):多媒體模型口實(shí)物口掛圖口音像口其它J
主要內(nèi)容
基本內(nèi)容:
?String類
?StringTokenizer類
?Scanner類
重點(diǎn):掌握String類,StringTokenizer類、Scannner類的使用。
難點(diǎn):StringTokenizer類、Scannner。
第8章常用實(shí)用類
§8.1String類
Java專門提供了用來處理字符序列的String類。
String類在java,lang包中,由于java,lang包中的類被默認(rèn)引入,因此程序可以直接使
用String類。
需要注意的是Java把String類聲明為final類,因此用戶不能擴(kuò)展String類,即String
類不可以有子類。
8.1.1構(gòu)造String對(duì)象
String對(duì)象,習(xí)慣地被翻譯為字符串對(duì)象。
1.常量對(duì)象
2.String對(duì)象
3.引用String常量
8.1.2字符串的并置
String對(duì)象可以用〃+”進(jìn)行并置運(yùn)算,即首位相接得到一個(gè)新的String對(duì)象。
例子1
Example8_l.java
publicclassExample8_l{
publicstaticvoidmain(Stringargs[]){
Stringhello="你好”;
StringtestOne="你"好";//【代碼1】
System,out.printIn(hello==testOne);//輸出結(jié)果是true
System.out.printIn(n==testOne);//輸出結(jié)果是true
System.out.printIn(n==hello);//輸出結(jié)果是true
Stringyou="你";
Stringhi=“好”;
StringtestTwo=you+hi;//【代碼2】
System,out.printIn(hello==testTwo);//輸出結(jié)果是false
StringtestThree=you+hi;
System,out.printIn(testTwo==testThree);//輸出結(jié)果是false
)
8.1.3String類的常用方法
1.publicintlength0
2.publicbooleanequals(Strings]
下面的例子2說明了equals的用法。
例子2
Example8_2.java
publicclassExample8_2{
publicstaticvoidmain(Stringargs[]){
Stringsizs2;
si=newString("天道酬勤”);
s2=newString("天道酬勤”);
System,out.printIn(si.equals(s2));//輸出結(jié)果是:true
System.out.printIn(sl==s2);//輸出結(jié)果是:false
Strings3,s4;
s3=nwearestudents**;
s4=newString(nwearestudents**);
System,out.printIn(s3.equals(s4));//輸出結(jié)果是:true
System.out.printIn(s3==s4);//輸出結(jié)果是:false
Strings5,s6;
s5="勇者無敵";
s6="勇者無敵";
System.out.printin(s5.equals(s6));//輸出結(jié)果是:true
System.out.printIn(s5==s6);//輸出結(jié)果是:true
}
)
3.publicbooleanstartsWith(Strings)、publicbooleanendsWith(Strings)方法
4.publicintcompareTo(Strings)方法
按字典序比較兩個(gè)String對(duì)象還可以使用publicintcompareToIgnoreCase(Strings)方
法,該方法忽略大小寫。
下面的例子3中使用java,util包中的Arrays調(diào)用sort方法和自己編寫SortString類中
的sort方法將一個(gè)String數(shù)組按字典序排列。
例子3
SortString.java
publicclassSortstring{
publicstaticvoidsort(Stringa[]){
intcount=0;
for(inti=0;i<a.length-1;i++){
for(intj=i+l;j<a.length;j++){
if(a[j],compareTo(a[i])<0){
Stringtemp=a[i];
a[i]=a[j];
a[j]=temp;
)
)
)
)
)
Example8_3.java
importjava.util.
publicclassExample8_3{
publicstaticvoidmain(Stringargs[]){
String[]a={"melon","appl一","p一ar","banana"};
String[]b={“西瓜“,“蘋果“,”梨“,“香蕉;
System.out.printIn("使用Sortstring類的方法按字典序排列數(shù)組a:”);
Sortstring.sort(a);
for(inti=0;i<a.length;i++){
System.out.print(”[i]);
}
System.out.printIn("");
System.out.printIn("使用類庫(kù)中的Arrays類,按字典序排列數(shù)組b:“);
Arrays.sort(b);
for(inti=0;i<b.length;i++){
System.out.print(”n+b[i]);
}
}
)
5.publicbooleancontains[Strings]
6.publicintindexOf(Strings)和publicintlastIndexOf(Strings)
7.publicStringsubstringfintstartpoint)
8.publicStringtrim()
8.1.4字符串與基本數(shù)據(jù)的相互轉(zhuǎn)化
java,lang包中的Integer類調(diào)用其類方法publicstaticintparselnt(Strings)可以將
由“數(shù)字”字符組成的字符序列,如〃876〃,轉(zhuǎn)化為int型數(shù)據(jù),例如:
intx;
Strings=〃876〃;
x=Integer,parselnt(s);
例子4求若干個(gè)數(shù)之和,若干個(gè)數(shù)從鍵盤輸入。
例子4
Example8_4.java
publicclassExample8_4{
publicstaticvoidmain(Stringargs[]){
doublesum=0,item=0;
booleancomputable=true;
for(Strings:args){
try{item=Double.pars一Double(s);
sum=sum4-item;
)
catch(NumberFormatExceptione){
System.out.printIn("您輸入了非數(shù)字字符:"+e);
computable=false;
)
)
if(computable)
System.out.printin(nsum=n+sum);
)
)
8.1.5對(duì)象的字符串表示
下面例子5中的TV類重寫了toStringO方法,并使用super調(diào)用隱藏的toStringO方法。
例子5
TVjava
publicclassTV{
doubleprice;
publicvoidsetPrice(doublem){
price=m;
}
publicStringtoString(){
StringoldStr=super.toString();
returnoldStr+”\n這是電視機(jī),價(jià)格是:H+price;
)
)
Example8_5.java
publicclassExample8_5{
publicstaticvoidmain(Stringargs[]){
Datedate=newDate();
System.out.printin(date.toString());
TVtv=newTV();
tv.setPrice(5897?98);
System.out.printin(tv.toString());
)
}
8.1.6字符串與字符、字節(jié)數(shù)組
1.字符串與字符數(shù)組
例子6具體地說明了getChars()和toCharArray()方法的使用。
例子6
Example8_6.java
publicclassExample8_6{
publicstaticvoidmain(Stringargs[]){
char[]a,c;
Strings="1945年8月15日是抗戰(zhàn)勝利日
a=newchar[4];
s.getChars(ll,15,a,0);//數(shù)組a的單元依次放的字符是,抗,,,戰(zhàn):勝,,'
利、
System.out.printin(a);
c=長(zhǎng)假期間,學(xué)校都放假了”.toCharA工ray();
for(inti=0;i<c.length;i++)
System.out.print(c[i]);
}
}
2.字符串與字節(jié)數(shù)組
在下面的例子7中,假設(shè)機(jī)器的默認(rèn)編碼是GB2312。String常量:"Java你好”,調(diào)用
getBytesO返回一個(gè)字節(jié)數(shù)組d,其長(zhǎng)度為8,該字節(jié)數(shù)組的d[0]、d[l]、d[2]和d[3]單元分
別是字符J、a、v和a的編碼,第d[4]和d[5]單元存放的是字符‘你'的編碼(GB2312編碼中,
一個(gè)漢字占2個(gè)字節(jié)),第d[6]和d[7]單元存放的是字符'好'的編碼。
例子7
Example8_7.java
publicclassExample8_7{
publicstaticvoidmain(Stringargs[]){
byted[]="Java你好".getBytes();
System.out.printin(“數(shù)組d的長(zhǎng)度是:"+d.length);
Strings=newString(d,6,2);//輸出:好
System.out.printin(s);
s=newString(d,0,6);
System,out.printin(s);//輸出:Java你
)
}
3.字符串的加密算法
例子8
EncryptAndDecrypt.java
publicclassEncryptAndDecrypt{
Stringencrypt(Stringsourcestring,Stringpassword){//力口密算
法
char[]p=password.toCharArray();
intn=p.length;
char[]c=sourcestring.toCharArray();
intm=c.length;
for(intk=0;k<m;k++){
intmima=c[k]+p[k%n];//力口密
c[k]=(char)mima;
)
returnnewString(c);//返回密文
)
Stringdecrypt(Stringsourcestring,Stringpassword){//解密算
法
char[]p=password.toCharArray();
intn=p.length;
char[]c=sourcestring.toCharArray();
intm=c.length;
for(intk=0;k<m;k++){
intmima=c[k]-p[k%n];//解密
c[k]=(char)mima;
)
returnnewString(c);//返回明文
Example8_8.java
importjava,util,Scanner;
publicclassExample8_8{
publicstaticvoidmain(Stringargs[]){
Stringsourcestring=”今晚十點(diǎn)進(jìn)攻“;
EncryptAndDecryptperson=newEncryptAndDecrypt();
System.out.printIn("輸入密碼力口密:n+sourceString);
Scannerscanner=newScanner(System.in);
Stringpassword=scanner.nextLine();
Stringsecret=person.encrypt(sourcestring,password);
System.out.printin("密文:"+secret);
System.out.printIn("輸入解密密碼”);
password=scanner.nextLine();
Stringsource=person.decrypt(secret,password);
System.out.printIn("明文:n+source);
}
}
8.1.7正則表達(dá)式及字符串的替換與分解
1.正則表達(dá)式
正則表達(dá)式是一個(gè)String對(duì)象的字符序列,該字符序列中含有具有特殊意義字符,這些特
殊字符稱做正則表達(dá)式中的元字符。
表8.1列出了常用的元字符及其意義。
注:有關(guān)正則表達(dá)式的細(xì)節(jié)可查閱java.util,regex包中的Pattern類。
例子9程序判斷用戶從鍵盤輸入的字符序列是由英文字母,數(shù)字或下劃線所組成。
例子9
Example8_9.java
importjava.util.Scanner;
publicclassExample8_9{
publicstaticvoidmain(Stringargs[]){
Stringregex=n[a-zA-ZI0-9|_];
Scannerscanner=newScanner(System.in);
Stringstr=scanner.nextLine();
if(str.matches(regex)){
System.out.printIn(str+”是英文字母,數(shù)字或下劃線構(gòu)成“);
)
else{
System.out.printIn(str+”中有非法字符”);
)
)
}
2.字符串的替換
String對(duì)象調(diào)用publicStringreplaceAll(Stringregex,Stringreplacement)方法返回
一個(gè)新的String對(duì)象,這個(gè)新的String對(duì)象的字符序列是把當(dāng)前String對(duì)象的字符序列中所
有和參數(shù)regex匹配的子字符序列,用參數(shù)replacement的字符序列替換后得到字符序列。
在下面的例子10中使用了replaceAll()方法。
例子10
Example8_10.java
publicclassExample8_10{
publicstaticvoidmain(Stringargs[]){
Stringstr="歡迎大家訪問了解、參觀公司”;
Stringregex=
n(http://|www)\56?\\w+\56{1}\\w+\56{1}\\p{Alpha}+n;
System,out.printf("替換\n\"%s\”\r^的網(wǎng)站鏈接信息后得到的字符串:
\n”,str);
str=str.replaceAll(reg一x,”******”);
System.out.printIn(str);
Stringmoney==89,235,678¥”;
System.out.print(money+"轉(zhuǎn)化成數(shù)字;
Strings=money.replaceAll("[^\\p{Sc}]n,nn);//”\\p{Sc}"可匹
配任何
貨幣符號(hào)
longnumber=Long.parseLong(s);
System.out.printin(number);
)
}
3.字符序列的分解
String類提供了一個(gè)實(shí)用的方法publicString[]split(Stringregex),String對(duì)象調(diào)
用該方法時(shí),使用參數(shù)指定的正則表達(dá)式regex作為分隔標(biāo)記分解出當(dāng)前String對(duì)象的字符序
列中的單詞,并將分解出的單詞存放在String數(shù)組中。
下面的例子11中,用戶從鍵盤輸入一行文本,程序輸出其中的單詞。用戶從鍵盤輸入whoare
you(Caven?)觀察運(yùn)行效果。
例子11
Example8_ll.java
importjava.util.Scanner;
publicclassExample8_ll{
publicstaticvoidmain(Stringargs[]){
System.out.printIn("一行文本:");
Scannerreader=newScanner(System.in);
Stringstr=reader.nextLine();
//regex匹配由空格、數(shù)字和!":;<=>?@]\廣_'{1}~組成的字符序
列
Stringregex=n[\\s\\d\\p{Punct}]+H;
Stringwords口=str.split(r一gex);
for(inti=0;i<words.length;i++){
intm=i+1;
System.out.printin("單詞"+m+”:"+words[i]);
)
)
}
8.2StringTokenizer類
當(dāng)分析一個(gè)String對(duì)象的字符序列并將字符序列分解成可被獨(dú)立使用的單詞時(shí),可以使用
java,util包中的StringTokenizer類,該類有兩個(gè)常用的構(gòu)造方法。
?StringTokenizer(Strings):
?StringTokenizer(Strings,Stringdelim):
例子12計(jì)算購(gòu)物小票的中的商品價(jià)格的和。程序關(guān)心是購(gòu)物小票中的數(shù)字,因此需要分解
出這些數(shù)字,以便單獨(dú)處理,這樣就需要把非數(shù)字的字符序列替換成統(tǒng)一的字符,以便使用分
隔標(biāo)記分解出數(shù)字,例如,對(duì)于〃12#25#39.87〃,如果用字符#做分隔標(biāo)記,就很容易分解出數(shù)
字單詞。在例子12的PriceToken類中,把購(gòu)物小票中非數(shù)字的字符序列都替換成#,然后再分
解出數(shù)字單詞(價(jià)格),并計(jì)算出這些數(shù)字的和。
例子12
Example8_12.java
importjava.util.*;
publicclassExample8_12{
publicstaticvoidmain(Stringargs[]){
StringshoppingReceipt="牛奶:8.5圓,香蕉3.6圓,醬油:2.8圓”;
PriceTokenlookPriceMess=newPriceToken();
System.out.printIn(shoppingReceipt);
doublesum=lookPriceMess.getPriceSum(shoppingReceipt);
System.out.printf("購(gòu)物總價(jià)格%一7.2£”,sum);
intamount=lookPriceMess.getGoodsAmount(shoppingReceipt);
doubleaver=lookPriceMess.getAverPrice(shoppingReceipt);
System.out.printf(”\n商品數(shù)目:為d,平均價(jià)格:%一7.2f”,amount,aver);
}
}
PriceToken.java
iimportjava.util.*;
publicclassPriceToken{
publicdoublegetPriceSum(StringshoppingReceipt){
Stringregex="「0123456789.]+";〃匹配非數(shù)字字符序列
shoppingReceipt=shoppingReceipt.replaceAll(regex,"#“);
//replaceAll方法見8.1.6節(jié)的例子10
StringTokenizerfenxi=newStringTokenizer(shoppingReceipt,n#H);
doublesum=0;
while(fenxi.hasMoreTokens()){
Stringitem=fenxi.nextToken();
doubleprice=Double.parseDouble(item);
sum=sum+price;
)
returnsum;
}
publicdoublegetAverPrice(StringshoppingReceipt){
doublepriceSum=getPriceSum(shoppingReceipt);
intgoodsAmount=getGoodsAmount(shoppingReceipt);
returnpriceSum/goodsiXmount;
)
publicintgetGoodsAmount(StringshoppingReceipt){
Stringregex=n[A0123456789.]+n;
shoppingReceipt=shoppingReceipt.replaceAll(regex,n#n);
StringTokenizerfenxi=newStringTokenizer(shoppingReceipt,n#H);
intamount=fenxi.countTokens();
returnamount;
}
}
8.3Scanner類
本節(jié)學(xué)習(xí)怎樣使用Scanner類的對(duì)象從字符序列中解析出程序所需要的數(shù)據(jù)。
1.Scanner對(duì)象
Scanner對(duì)象可以解析字符序列中的單詞
下面的例子13使用正則表達(dá)式:
Stringregex="「0123456789.]+"〃(匹配所有非數(shù)字字符序列)
作為分隔標(biāo)記,解析”市話76.8元,長(zhǎng)途:167.38元,短信12.68元“,以及''牛奶:8.5圓,香
蕉3.6圓,醬油:2.8圓''中的價(jià)格,并計(jì)算價(jià)格之和。
例子13
Example8_13.java
publicclassExample8_13{
publicstaticvoidmain(Stringargs[]){
Stringcost="市話76.8元,長(zhǎng)途:167.38元,短信12?68元”;
doublepriceSum=GetPrice.givePriceSum(cost);
System,out.printf("%s\n總價(jià):%.2f圓\n”,cost,priceSum);
cost="牛奶:8.5圓,香蕉3.6圓,醬油:2.8圓”;
priceSum=GetPrice.givePriceSum(cost);
System,out.printf("%$\11總價(jià):%,2£圓\11”,cost,priceSum);
)
)
GetPrice.java
importjava.util,
publicclassGetPrice{
publicstaticdoublegivePriceSum(Stringcost){//static方法,類名
可調(diào)用
Scannerscanner=newScanner(cost);
scanner.useDelimiter("「0123456789.]+”);//scann一r設(shè)置分隔
標(biāo)記
doublesum=0;
while(scanner.hasNext()){
try{doubleprice=scanner.nextDouble();
sum=sum+price;
)
catch(InputMismatchExceptionexp){
Stringt=scanner.next();
)
)
returnsum;
)
}
2.StringTokenizer和Scanner的區(qū)另
本次課總結(jié)
熟練掌握String類的常用方法。
掌握String類的和StringBuffer類的不同,以及二者之間的聯(lián)系。
使用StringTokenizer,Scannner類分析字符串,獲取字符串中被分隔符分隔的單詞。
作業(yè)
習(xí)題82(1),(3),(4)3(1)-(5)
預(yù)習(xí)第8章8.4-8.12節(jié)
本次課結(jié)束
各章教學(xué)實(shí)施計(jì)劃
章節(jié)題目第8章常用實(shí)用類
當(dāng)U-4-9
字時(shí)
8.4節(jié)―8.12節(jié)
教學(xué)目的、要求(分了解、理解、掌握三個(gè)層次):
1、掌握StringBuffer類。
2、掌握Date與Calendar類,了解日期格式化。
3、掌握Math類,了解Biginteger與Random類、數(shù)字格式化。
4、了解Class類與Console類。
5、掌握Pattern類和Matcher類。
教學(xué)內(nèi)容(包括基本內(nèi)容、重點(diǎn)、難點(diǎn)):
基本內(nèi)容:
?StringBuffer類。
?Date與Calendar類,了解日期格式化。
?Malh類,Biglnleger與Random類、數(shù)字格式化。
?Class類與Console類。
?Pattern類和Matcher類。
重點(diǎn):Date類和Calendar類以及Math類的使用。
難點(diǎn):Pattern類與Match類。
討論、思考題、作業(yè):
習(xí)題81,2(2),(5)3(6)-(7)4
預(yù)習(xí)第9章9.1—9.4節(jié)
參考書目(含參考書、文獻(xiàn)等)具體內(nèi)容:
參考書對(duì)應(yīng)章節(jié)
課堂教學(xué)實(shí)施計(jì)劃
教學(xué)過程設(shè)計(jì):復(fù)習(xí)一5一分鐘;授新課90一分鐘
第14課
討論.5一分鐘;其它___________一分鐘
授課類型(請(qǐng)打J):理論課J討論課口實(shí)驗(yàn)課口習(xí)題課口其它口
教學(xué)方式(請(qǐng)打J):講授J討論口示教口指導(dǎo)口其它口
教學(xué)手段(請(qǐng)打J):多媒體模型口實(shí)物口掛圖口音像口其它J
主要內(nèi)容
基本內(nèi)容:
?StringBuffer類。
?Date與Calendar類,了解日期格式化。
?Math類,Biginteger與Random類、數(shù)字格式化。
?Class類與Console類。
?Pattern類和Matcher類。
重點(diǎn):Date類和Calendar類以及Math類的使用。
難點(diǎn):Pattern類與Match類。
8.4StringBuffer類
8.4.1StringBuffer對(duì)象
與String類不同,StringBuffer類的對(duì)象的實(shí)體的內(nèi)存空間可以自動(dòng)地改變大小,便于
存放一個(gè)可變的字符序列。
StringBuffer類有三個(gè)構(gòu)造方法:
StringBuffer()
StringBuffer(intsize)
StringBuffer(Strings)
8.4.2StringBuffer類的常用方法
1.append方法
2.publiccharcharAt(intn)和publicvoidsetCharAt(intn,charch)
3.StringBufferinsert(intindex,Stringstr)
4.publicStringBufferreverseO
5.StringBufferdelete(intstartindex,intendindex)
6.StringBufferreplace(intstartindex,intendindex,Stringstr)
下面的例子14使用StringBuffer類的常用方法,運(yùn)行效果如圖8.180
例子14
Example8_14.java
publicclassExample8_14{
publicstaticvoidmain(Stringargs[]){
StringBufferstr=newStringBuffer();
str.append(〃大家好〃);
System.out.println(〃str:〃+str);
System,out.printIn("length:〃+str?length());
System,out.printin("capacity:〃+str?capacity());
str.setCharAt(0,'w');
str.setCharAt(1,'e');
System,out.printin(str);
str.insert(2,〃areall");
System,out.println(str);
intindex=str.indexOf(〃好〃);
str.replace(index,str.length(),z,right");
System,out.printin(str);
)
)
8.5Date與Calendar類
程序設(shè)計(jì)中可能需要日期、時(shí)間等數(shù)據(jù),本節(jié)介紹java,util包中的Date和Calendar類,
二者的實(shí)例可用于處理和日期、時(shí)間相關(guān)的數(shù)據(jù)。
8.4.1Date類
1.使用無參數(shù)構(gòu)造方法
2.使用帶參數(shù)的構(gòu)造方法
8.4.2Calendar類
Calendar類在java,util包中。使用Calendar類的static方法getInstance。可以初始
化一個(gè)日歷對(duì)象。
下面的例子15計(jì)算了2012-9-01和2016-07-01之間相隔的天數(shù)。
例子15
Example8_15.java
importjava.util.
publicclassExample8_15{
publicstaticvoidmain(Stringargs[]){
Calendarcalendar=Calendar.getlnstance();
calendar.setTime(newDate());
intyear=calendar,get(Calendar.YEAR),
month=calendar,get(Calendar.MONTH)+1,
day=calendar,get(Calendar.DAY_OF_MONTH),
hour=calendar,get(Calendar.HOUR_OF_DAY),
minute=calendar,get(Calendar.MINUTE),
second=calendar,get(Calendar.SECOND);
System.out.print(〃現(xiàn)在的時(shí)間是:〃);
System,out.print(〃〃+year+〃年〃+month+〃月〃+day+〃日〃);
System,out.printin(,z〃+hour+〃時(shí)〃+minute+〃分〃+second+〃秒〃);
inty=2012,m=9,d=1;
calendar,set(y,m-l,d);〃將日歷翻到2012年九月一日,注意8表示九月
longtimel=calendar.getTimelnMillis();
y=2016;
m=7;
day=1;
calendar,set(y,m-l,d);〃將日歷翻到2016年七月一日
longtime2=calendar.getTimelnMillis();
longsubDay=(time2-timel)/(1000*60*60*24);
System.out.printin(,,/z+newDate(time2));
System,out.printin(〃與〃+newDate(timel));
System.out.printin(〃相隔〃+subDay+〃天〃);
)
)
下面的例子16輸出2022年6月的日歷。
例子16
Example8_16.java
publicclassExample8_16{
publicstaticvoidmain(Stringargs[]){
CalendarBeancb=newCalendarBean();
cb.setYear(2022);
cb.setMonth(6);
String[]a=cb.getCalendar();〃返回號(hào)碼的一維數(shù)組
char[]str=〃日一二三四五六toCharArray();
for(charc:str){
System,out.printfc);
)
for(inti=0;i<a.length;i++){〃輸出數(shù)組a
if(i%7==0)
System,out.printin(〃〃);//換彳亍
System.out.printf(〃%4s〃,a[i]);
)
)
)
CalendarBean.java
importjava.util.Calendar;
publicclassCalendarBean{
intyear=0,month=0;
publicvoidsetYear(intyear){
this.year=year;
)
publicvoidsetMonth(intmonth){
this.month=month;
)
publicString[]getCalendar(){
String[]a=newString[42];
Calendarrili=Calendar.getlnstance();
rili.set(year,month-1,1);
intweekDay=rili.get(Calendar.DAY_OF_WEEK)-1;//計(jì)算出1號(hào)的星期
intday=O;
if(month==l|1month==3|Imonth==5||month==7||month==8||month==10|
Imonth==12)
day=31;
if(month==4||month==6||month==9||month==ll)
day=30;
if(month==2){
if(((year%4==0)&&(year%100!=0))||(year%400==0))
day=29;
else
day=28;
)
for(inti=0;i<weekDay;i++)
a[i]=〃〃;
for(inti=weekDay,n=l;i<weekDay+day;i++){
a[i]=String.valueOf(n);
n++;
)
for(inti=weekDay+day;i<a.length;i++)
a[i]二〃〃;
returna;
8.6日期的格式化
程序可能希望按著某種習(xí)慣來輸出時(shí)間,比如時(shí)間的順序:年月星期日或年月星期日
小時(shí)分秒??梢灾苯邮褂肧tring類調(diào)用format方法對(duì)日期進(jìn)行格式化。
8.6.1format方法
format方法:
format(格式化模式,日期列表)
1.格式化模式
2.日期列表
3.格式化同一日期
8.6.2不同區(qū)域的星期格式
不同國(guó)家的星期的簡(jiǎn)稱或全稱有很大的不同,例如,美國(guó)用Thu簡(jiǎn)稱星期四,日本用“木”
簡(jiǎn)稱星期四,意大利用gi。簡(jiǎn)稱星期四等。如果想用特定地區(qū)的星期格式來表示日期中的星期,
可以用format的重載方法:
format(Localelocale,格式化模式,日期列表);
其中的參數(shù)locale是一個(gè)Locale類的實(shí)例,用于表示地域。,
8.7Math、Biginteger和Random類
8.7.1Math類
在編寫程序時(shí),可能需要計(jì)算一個(gè)數(shù)的平方根、絕對(duì)值或獲取一個(gè)隨機(jī)數(shù)等。
以下是Math類的常用類方法。
?publicstaticlongabs(doublea)返回a的絕對(duì)值。
?publicstaticdoublemax(doublea,doubleb)返回a、b的最大值。
?publicstaticdoublemin(doublea,doubleb)返回a、b的最小值。
等
8.7.2Biginteger類
Biginteger類的常用方法。
?publicBigintegeradd(Bigintegerval)返回當(dāng)前對(duì)象與val的和。
?publicBigintegersubtract(Bigintegerval)返回當(dāng)前對(duì)象與val的差。
?publicBigintegermultiply(Bigintegerval)返回當(dāng)前對(duì)象與val的積。
等。
下面的例子17使用Math和Biginteger類。
例子17
Example8_17.java
importjava.math.*;
publicclassExample8_17{
publicstaticvoidmain(Stringargs[]){
doublea=5.0;
doublest=Math,sqrt(a);
System,out.printin(a+”的平方根:〃+st);
System.out.printf(〃大于等于%f的最小整數(shù)%d\n〃,5.2,
(int)Math,ceil(5.2));
System,out.printf(〃小于等于%f的最大整數(shù)%d\n〃,-5.2,
(int)Math,floor(-5.2));
System,out.printf(,z%f四舍五入的整數(shù):%d\n〃,12.9,Math,round(12.9));
System,out.printf(〃%f四舍五入的整數(shù):%d\n〃,T2.6,Math,round(-12.6));
Bigintegerresult=newBiginteger(/z0z,),
one=newBiginteger(“123456789〃),
two=newBiginteger(“987654321〃);
r
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 自動(dòng)售貨機(jī)產(chǎn)品供應(yīng)鏈分析
- 工業(yè)物聯(lián)網(wǎng)行業(yè)相關(guān)項(xiàng)目經(jīng)營(yíng)管理報(bào)告
- 人造琥珀制小雕像產(chǎn)品供應(yīng)鏈分析
- 手表修理或保養(yǎng)行業(yè)相關(guān)項(xiàng)目經(jīng)營(yíng)管理報(bào)告
- 健身指導(dǎo)課程行業(yè)相關(guān)項(xiàng)目經(jīng)營(yíng)管理報(bào)告
- 光電轉(zhuǎn)換器產(chǎn)品供應(yīng)鏈分析
- 電源電纜項(xiàng)目運(yùn)營(yíng)指導(dǎo)方案
- 廢水處理工程行業(yè)相關(guān)項(xiàng)目經(jīng)營(yíng)管理報(bào)告
- 紡織品清棉機(jī)細(xì)分市場(chǎng)深度研究報(bào)告
- 危險(xiǎn)物質(zhì)倉(cāng)庫(kù)儲(chǔ)存行業(yè)營(yíng)銷策略方案
- 鄉(xiāng)鎮(zhèn)環(huán)保各項(xiàng)管理制度
- 指數(shù)函數(shù)課件(第一課時(shí)) 高一上學(xué)期數(shù)學(xué)北師大版(2019)必修第一冊(cè)
- 2023年山東省泰安市中考語文試題(附參考答案)
- 立體幾何與空間向量專項(xiàng)練習(xí)
- 小學(xué)數(shù)學(xué)四年級(jí)上冊(cè)第12周含有中括號(hào)的四則混合運(yùn)算
- 脂肪肝護(hù)理查房
- 部編版一到六年級(jí)(12冊(cè))日積月累匯總
- 新技術(shù)的挑戰(zhàn)和風(fēng)險(xiǎn)大于好處英語作文
- 術(shù)前傳染病篩查結(jié)果的解讀
- Unit3FamilyMattersDevelopingideas課件高中英語
- 湖北省孝感市漢川市2023-2024學(xué)年八年級(jí)上學(xué)期期中考試物理試題
評(píng)論
0/150
提交評(píng)論