实验一 Java常用工具类编程.docx

上传人:b****6 文档编号:6027693 上传时间:2023-01-03 格式:DOCX 页数:17 大小:53.42KB
下载 相关 举报
实验一 Java常用工具类编程.docx_第1页
第1页 / 共17页
实验一 Java常用工具类编程.docx_第2页
第2页 / 共17页
实验一 Java常用工具类编程.docx_第3页
第3页 / 共17页
实验一 Java常用工具类编程.docx_第4页
第4页 / 共17页
实验一 Java常用工具类编程.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

实验一 Java常用工具类编程.docx

《实验一 Java常用工具类编程.docx》由会员分享,可在线阅读,更多相关《实验一 Java常用工具类编程.docx(17页珍藏版)》请在冰豆网上搜索。

实验一 Java常用工具类编程.docx

实验一Java常用工具类编程

实验一Java常用工具类编程

§1.1实验指导

1、String类使用

String类表示字符串。

在Java程序中所有的字符串常量,如"abc",都被实现为这个类的实例。

1)、构造函数

Strings1="java";

Strings2=newString("java");

2)、比较函数

①==比较引用是否相同

if(s1==s2)//返回false

②equals():

比较串内容是否相同

if(s1.equals(s2))//返回true

③compareTo():

比较内容,返回数字

pareTo(s2)

如果s1>s2则返回>0

如果s1=s2则返回0

如果s1

3)、取子串substring(),取字符charAt(index)

Strings1="hellojava";

s1.substring(start,end);

s1.substring(0,3);//start到end-1

Strings2=s1.substring(6,10);

4)、分割split();

Strings1="c++,java,";

String[]str=s1.split(",");

Strings2="c++.java.vb";

Strings2="c++.java.vbdotnet";

String[]str=s2.split("\\.|");

for(inti=0;i

System.out.println(str[i]);

2、StringBuffer类

StringBuffer

publicStringBuffer()

构造一个不包含字符的字符串缓冲区,其初始的容量设为16个字符。

StringBuffer

publicStringBuffer(intlength):

构造一个不包含字符的字符串缓冲区,其初始的容量由参数length设置。

StringBuffer

publicStringBuffer(Stringstr):

构造一个字符串缓冲区,来表示和字符串参数相同的字符序列。

length

publicintlength():

返回字符串缓冲区的长度(字符数)。

capacity

publicintcapacity():

返回字符串缓冲区的当前容量。

该容量表示可用于插入新的字符的存储空间;超出该容量时会发生新的容量分配。

ensureCapacity

publicsynchronizedvoidensureCapacity(intminimumCapacity):

保证缓冲区的容量至少等于指定的最小数。

如果字符串缓冲区的当前容量少于该参数,则分配一个新的更大的内部缓冲区。

新容量将取如下参数中较大的一个:

setLength

publicsynchronizedvoidsetLength(intnewLength):

设置该字符串缓冲区的长度。

如果参数newLength小于该字符串缓冲区的当前长度。

该字符串缓冲区将被截断来包含恰好等于由参数newLength给出的字符数。

append

publicsynchronizedStringBufferappend(Objectobj):

把Object型参数的字符串表示添加到该字符串缓冲区。

StringBufferx=newStringBuffer().append("a").append(4).append("c").toString();

insert

publicsynchronizedStringBufferinsert(intoffset,Objectobj):

把Object型参数的字符串表示插入到字符串缓冲区。

reverse

publicsynchronizedStringBufferreverse():

该字符串缓冲区的字符序列被其反向字符序列所替换。

toString

publicStringtoString():

转换为一个表示该字符串缓冲区数据的字符串。

分配一个新的String对象,并且用字符串缓冲区所表示的字符序列进行初始化。

于是此String被返回。

随后缓冲区发生的变化不再影响该String的内容。

3、日期类示例

1)获取服务器端当前日期:

importjava.util.Date;

DatemyDate=newDate();

2)获取当前年、月、日:

DatemyDate=newDate();

intthisYear=myDate.getYear()+1900;//thisYear=2009

intthisMonth=myDate.getMonth()+1;//thisMonth=10

intthisDate=myDate.getDate();//thisDate=30

3)按本地时区输出当前日期

DatemyDate=newDate();

out.println(myDate.toLocaleString());

输出结果为:

2003-5-30

4)按照指定格式打印日期

importjava.util.Date;

importjava.text.DateFormat;

DatedNow=newDate();

SimpleDateFormatformatter=

newSimpleDateFormat("Eyyyy.MM.dd'at'hh:

mm:

ssazzz");

System.out.println("Itis"+formatter.format(dNow));

 输出的结果为:

Itis星期五2003.05.30at11:

30:

46上午CST

5)将字符串转换为日期

importjava.util.Date;

Stringinput="1222-11-11";

SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd");

Datet=null;

try{

 t=formatter.parse(input);

 System.out.println(t);

 }catch(ParseExceptione){

 System.out.println("unparseableusing"+formatter);

 }

输出结果为:

FriNov1100:

00:

00CST1222

6)计算日期之间的间隔getTime()函数返回日期与1900-01-0100:

00:

00相差的毫秒数

Importjava.util.Date;

importjava.text.DateFormat;

Stringinput="2003-05-01";

SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd");

Dated1=null;

Dated2=newDate();longdiff=d2.getTime()-d1.getTime();

out.println("Differenceis"+(diff/(1000*60*60*24))+"days.");

输出结果为:

Differenceis29days.

7)日期的加减运算

方法:

用Calendar类的add()方法

Calendarnow=Calendar.getInstance();

SimpleDateFormatformatter=newSimpleDateFormat("Eyyyy.MM.dd'at'hh:

mm:

ssazzz");

out.println("Itisnow"+formatter.format(now.getTime()));

now.add(Calendar.DAY_OF_YEAR,-(365*2));

out.println("
");

out.println("Twoyearsagowas"+formatter.format(now.getTime()));

 输出结果为:

Itisnow星期五2003.05.30at01:

45:

32下午CST

Twoyearsagowas星期三2001.05.30at01:

45:

32下午CST

8)比较日期

方法:

用equals()、before()、after()方法

DateFormatdf=newSimpleDateFormat("yyy-MM-dd");

Dated1=df.parse("2000-01-01");

Dated2=df.parse("1999-12-31");

Stringrelation=null;

if(d1.equals(d2))

relation="thesamedateas";

elseif(d1.before(d2))

relation="before";

else

relation="after";

System.out.println(d1+"is"+relation+''+d2);

输出结果为:

SatJan0100:

00:

00CST2000isafterFriDec3100:

00:

00CST1999

§1.2实验题目

1、使用类String类的分割split将字符串“SolutionstoselectedexercisescanbefoundintheelectronicdocumentTheThinkinginJavaAnnotatedSolutionGuide,availableforasmallfeefromBruceEckel”单词提取输出。

单词以空格或,分割。

参照课本P10例2.5

运行代码:

packageEX1_1;

publicclassEX1_1{

publicstaticvoidmain(String[]args){

Stringstr1=newString("SolutionstoselectedexercisescanbefoundintheelectronicdocumentTheThinkinginJavaAnnotatedSolutionGuide,availableforasmallfeefromBruceEckel");

String[]str2=str1.split("|,");

for(inti=0;i

System.out.println(str2[i]);

}

}

运行截图:

2、调试p14例2.8,将程序加上注释。

运行代码:

packageEX1_2;

publicclassEX1_2{

publicstaticvoidstringRepalce(Stringtext){

text=text.replace('j','i');//替换函数把j替换成i

}

publicstaticvoidbufferRepalce(StringBuffertext){

text=text.append("EE");//把Object型参数的字符串表示添加到该字符串缓冲区

}

publicstaticvoidmain(String[]args){

Stringts=newString("java");//字符型

StringBuffertb=newStringBuffer("java");//StringBuffer型

stringRepalce(ts);//调用函数

bufferRepalce(tb);

System.out.println(ts+""+tb);//打印输出

}}

运行截图:

stringRepalce函数中传进来的只是形参,是对原值的拷贝,原值不改变。

bufferRepalce函数是对字符串缓冲区进行修改,是对原值的修改,故发生改变。

3、调试p15例2.10,将程序加上注释。

运行代码:

packageEX1_3;

importjava.text.SimpleDateFormat;

importjava.util.Date;

publicclassEX1_3{

publicstaticvoidmain(String[]args){

SimpleDateFormatformat1=newSimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");//SimpleDateFormat指定格式输出

SimpleDateFormatformat2=newSimpleDateFormat("yy/MM/dd/HH:

mm");

SimpleDateFormatformat3=newSimpleDateFormat("yyyy-MM-ddHH:

mm:

ss");

SimpleDateFormatformat4=newSimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒E");

Datedate=newDate();

System.out.println(format1.format(date));//格式化输出

System.out.println(format2.format(date));

System.out.println(format3.format(date));

System.out.println(format4.format(date));

System.out.println(date.toString());//默认输出格式

}

}

运行截图:

 

4、设计一个程序计算2010-05-01日与系统当前日期相差的天数。

参照题3与书本上P17完成。

运行代码:

packageEX1_4;

importjava.util.Date;

importjava.text.ParseException;

importjava.text.SimpleDateFormat;

publicclassEX1_4{

publicstaticvoidmain(String[]args){

Stringinput="2010-05-01";

SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd");

Dated1=null;

Dated2=newDate();

try{

d1=formatter.parse(input);

}catch(ParseExceptione){

e.printStackTrace();

}

longdiff=d2.getTime()-d1.getTime();

System.out.println("Differenceis"+(diff/(1000*60*60*24))+"days.");

}

}

运行截图:

5、设计一个类Student,类的属性有:

姓名,学号,出生日期,性别,所在系等。

并生成学生类对象数组。

按照学生的姓名将学生排序输出。

使用String类的compareTo方法。

1)、定义学生类

classStudent{

privateStringsno,sname,sbirth,ssex,sdept;//构造函数,set-get函数

}

2)、创建一个测试类

publicclassEx1_2{

publicStudent[]initStudent(){//初始化学生信息

Students[]=newStudent[5];

String[]names={"zhou","zhang","liu","li","xu"};

...//定义几个数组放置属性信息

for(inti=0;i

s[i]=newStudent(nos[i],names[i],births[i],sess[i],depts[i]);

returns;

}

publicvoidsortStudent(Student[]s){//排序按照姓名,选择法

for(inti=0;i

intmin=i;

for(intj=i+1;j

if((s[min].getSname().compareTo(s[j].getSname())>0)min=j;

if(min!

=i){

Studentt=s[i];s[i]=s[min];s[min]=t;

}

}

}

publicvoiddispStudent((Student[]s){//输出学生信息

..

}

publicstaticvoidmain(String[]args){

Ex1_2obj=newEx1_2();

Student[]s=obj.initStudent();

obj.sortStudent(s);

obj.dispStudent(s);

}

}

运行代码:

packageEX1_5;

publicclassStudent{

privateStringsno,sname,sbirth,ssex,sdept;

Student(Stringsno,Stringsname,Stringsbirth,Stringssex,Stringsdept){

this.sno=sno;

this.sname=sname;

this.sbirth=sbirth;

this.ssex=ssex;

this.sdept=sdept;

}

publicStringgetSno(){

returnsno;

}

publicvoidsetSno(Stringsno){

this.sno=sno;

}

publicStringgetSname(){

returnsname;

}

publicvoidsetSname(Stringsname){

this.sname=sname;

}

publicStringgetSbirth(){

returnsbirth;

}

publicvoidsetSbirth(Stringsbirth){

this.sbirth=sbirth;

}

publicStringgetSsex(){

returnssex;

}

publicvoidsetSsex(Stringssex){

this.ssex=ssex;

}

publicStringgetSdept(){

returnsdept;

}

publicvoidsetSdept(Stringsdept){

this.sdept=sdept;

}

}

packageEX1_5;

publicclassTest{

publicStudent[]initStudent(){//初始化学生信息

Students[]=newStudent[5];

String[]snos={"20101706","20101707","20101708","20101709","20101710"};

String[]names={"gaojian","cuichengdi","huangyongsheng","huangwei","pengchonglin"};

String[]births={"1990-01-01","1990-01-02","1990-01-03","1990-01-04","1990-01-05"};

String[]sess={"男","男","男","女","男"};

String[]depts={"计算机","数学","英语","测控","经济"};

for(inti=0;i

s[i]=newStudent(snos[i],names[i],births[i],sess[i],depts[i]);

returns;

}

publicvoidsortStudent(Student[]s){//排序按照姓名,选择法

for(inti=0;i

intmin=i;

for(intj=i+1;j

if((s[min].getSname().compareTo(s[j].getSname())>0))

min=j;

if(min!

=i){

Studentt=s[i];

s[i]=s[min];

s[min]=t;

}

}

}

publicvoiddispStudent(Student[]s){

for(inti=0;i

System.out.println(s[i].getSno()+""+s[i].getSname()+""+s[i].getSbirth()+""+s[i].getSsex()+""+s[i].getSdept());

}

}

publicstaticvoidmain(String[]args){

Testobj=newTest();

Student[]s=obj.initStudent();

obj.sortStudent(s);

obj.dispStudent(s);

}

}

运行截图:

 

6、使用日历类等相关方法按截图做出一个日历参照书本示例,研究其中代码回顾与复习利用JavaSwing编程。

参考:

以下函数根据输入的年和月计算相应的数字

publicvoi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1