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

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

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

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

实验一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)按照指定格式打印日期

import"java.util.Date";

import"java.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)将字符串转换为日期

import="java.util.Date"

import="java.text.DateFormat"

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相差的毫秒数

import="java.util.Date"

import="java.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()方法

import="java.util.*"

import="java.text.*"

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”单词提取输出。

单词以空格或,分割。

packagejob1;

publicclassSplit{

publicstaticvoidmain(String[]args){

Strings1="Solutionstoselectedexercises"+

"canbefoundintheelectronicdocument"+

"TheThinkinginJavaAnnotatedSolutionGuide,"+

"availableforasmallfeefromBruceEckel";

Strings2[]=s1.split("|,");

for(inti=0;i

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

}

}

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

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

并生成学生类对象数组。

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

使用String类的compareTo方法。

packagejob1;

publicclassStudent{

privateStringname;

privateintnum;

privateStringbirth;

privateStringsex;

privateStringsdept;

publicStudent(){

}

publicStudent(Stringname,intnum,Stringbirth,Stringsex,Stringsdepet){

this.name=name;

this.num=num;

this.birth=birth;

this.sex=sex;

this.sdept=sdept;

}

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicintgetNum(){

returnnum;

}

publicvoidsetNum(intnum){

this.num=num;

}

publicStringgetBirth(){

returnbirth;

}

publicvoidsetBirth(Stringbirth){

this.birth=birth;

}

publicStringgetSex(){

returnsex;

}

publicvoidsetSex(Stringsex){

this.sex=sex;

}

publicStringgetSdept(){

returnsdept;

}

publicvoidsetSdept(Stringsdept){

this.sdept=sdept;

}

}

packagejob1;

importjava.util.Comparator;

importjava.text.CollationKey;

importjava.text.Collator;

publicclassMyCmpimplementsComparator{

publicintcompare(Objectobj1,Objectobj2){

Collatorcollator=Collator.getInstance();

CollationKeykey1=collator.getCollationKey(obj1.toString());

CollationKeykey2=collator.getCollationKey(obj2.toString());

returnpareTo(key2);

}

}

packagejob1;

importjava.util.*;

publicclassTreeText{

publicstaticvoidmain(String[]args){

TreeMapmap=newTreeMap(newMyCmp());

map.put("蒋高登","200818511990-08-03男CS");

map.put("蒋稀文","200818521989-01-11男CS");

map.put("董骏","200818501990-04-05男CS");

Setkeys=map.entrySet();

Iteratorit=keys.iterator();

while(it.hasNext()){

Map.Entrye=(Map.Entry)it.next();

System.out.println(e.getKey()+""+e.getValue());

}

}

}

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

packagejob1;

importjava.text.ParseException;

importjava.text.SimpleDateFormat;

importjava.util.Date;

publicclassDays{

publicstaticvoidmain(String[]args)throwsParseException{

Dated1=newDate();

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

Strings="2011-05-01";

Dated2=format.parse(s);

intdays=(int)((d2.getTime()-d1.getTime())/(1000*60*60*24));

System.out.print("2011-05-01日与系统当前时间相差"+days+"天");

}

}

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

参考:

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

publicvoidshowCalendar(intyear,intmonth){

Calendarcal=Calendar.getInstance();

cal.set(Calendar.YEAR,year);

cal.set(Calendar.MONTH,month-1);

//计算当前月一共有多少天

intdays=cal.getActualMaximum(Calendar.DAY_OF_MONTH);

//计算当前月的1号为星期几

cal.set(Calendar.DAY_OF_MONTH,1);//设置为1号

intfirstweek=cal.get(Calendar.DAY_OF_WEEK);

}

packagejob1;

importjava.awt.BorderLayout;

importjava.awt.GridLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.util.Calendar;

importjavax.swing.*;

importjavax.swing.table.DefaultTableModel;

publicclassCalendarTableextendsJFrameimplementsActionListener{

privateJLabellabel_year=newJLabel("年");

privateJLabellabel_month=newJLabel("月");

privateJComboBoxbox_year=newJComboBox();

privateJComboBoxbox_month=newJComboBox();

privateJButtonbtn=newJButton("确定");

privateJTabletable;

privateStringweek[]={"日","一","二","三","四","五","六"};

privateStringrows[][]=newString[6][7];

publicCalendarTable(){

JPaneljp_north=newJPanel(newGridLayout(1,5));

for(inti=1;i<13;i++)

box_month.addItem(i);

jp_north.add(box_year);

jp_north.add(label_year);

jp_north.add(box_month);

jp_north.add(label_month);

jp_north.add(btn);

table=newJTable(rows,week);

JScrollPanescroll=newJScrollPane(table);

this.add(jp_north,BorderLayout.NORTH);

this.add(scroll);

calendarinit();

btn.addActionListener(this);

box_year.addActionListener(this);

box_month.addActionListener(this);

}

publicvoidactionPerformed(ActionEvente){

Calendarcal=Calendar.getInstance();

intyear=cal.get(Calendar.YEAR);//box_year.getSelectedIndex();

intmonth=box_month.getSelectedIndex();

showCalendar(year,month);

table.setModel(newDefaultTableModel(rows,week));

}

privatevoidcalendarinit(){

Calendarcal=Calendar.getInstance();

box_year.addItem(newInteger(cal.get(Calendar.YEAR)));

cal.set(Calendar.DAY_OF_MONTH,1);

box_month.setSelectedIndex(cal.get(Calendar.MONTH));

showCalendar(Calendar.YEAR,Calendar.MONTH);

}

privatevoidshowCalendar(intyear,intmonth){

Calendarcal=Calendar.getInstance();

cal.set(Calendar.YEAR,year);

cal.set(Calendar.MONTH,month);

intdays=cal.getActualMaximum(Calendar.DAY_OF_MONTH);

cal.set(Calendar.DAY_OF_MONTH,1);

intfirstweek=cal.get(Calendar.DAY_OF_WEEK);

for(inti=0;i

for(intj=0;j

rows[i][j]="";

}

}

intline=0;

for(inti=1;i

if(i%7==0){

line++;

}

if(firstweek==1){

rows[0][0]="1";

}

if(i>=firstweek-1){

rows[line][i%7]=(i-firstweek+2)+"";

}

}

}

publicstaticvoidmain(Strin

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

当前位置:首页 > 人文社科 > 视频讲堂

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

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