JAVA常用实用类.docx

上传人:b****4 文档编号:6916771 上传时间:2023-05-10 格式:DOCX 页数:12 大小:367.74KB
下载 相关 举报
JAVA常用实用类.docx_第1页
第1页 / 共12页
JAVA常用实用类.docx_第2页
第2页 / 共12页
JAVA常用实用类.docx_第3页
第3页 / 共12页
JAVA常用实用类.docx_第4页
第4页 / 共12页
JAVA常用实用类.docx_第5页
第5页 / 共12页
JAVA常用实用类.docx_第6页
第6页 / 共12页
JAVA常用实用类.docx_第7页
第7页 / 共12页
JAVA常用实用类.docx_第8页
第8页 / 共12页
JAVA常用实用类.docx_第9页
第9页 / 共12页
JAVA常用实用类.docx_第10页
第10页 / 共12页
JAVA常用实用类.docx_第11页
第11页 / 共12页
JAVA常用实用类.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

JAVA常用实用类.docx

《JAVA常用实用类.docx》由会员分享,可在线阅读,更多相关《JAVA常用实用类.docx(12页珍藏版)》请在冰点文库上搜索。

JAVA常用实用类.docx

JAVA常用实用类

常用实用类

9.1String类

Java的字符串类型是String类型,它不是基本数据类型,而是Java所特有的类型类,String既可以用于字符串数据的存储,同时也提供多种字符串操作方法,如startsWith()、endsWith()、regionMatches()、charAt()、compareTo()、indexOf()、substring()、contains()等

9.1.1String对象的隐式创建和显式创建的区别

Java的字符串数据是使用String对象来进行存储的,String对象可以通过赋值语句或者new进行创建。

所不同的是使用赋值语句创建String对象叫做隐式创建法,而使用new的方式创建String对象的方式叫做显式创建方法,两种方法如下:

String对象的两种创建方式在内存存储机制上是有区别的:

String对象的显式创建,每次都为存储的字符串分配独立的内存空间以创建新的对象,即有几个new就有几个独立的String对象。

而隐式创建则采用了一种更加节省内存的方式,即如果内存中已经拥有内容相同的String对象时,则运行器在String对象进行隐式创建时不再分配内存以创建新的对象,而是使这个String对象的引用与前一个内容相同的对象共享一个字符串对象空间,即使用之前已经存在的这个String对象。

我们把这种方式称之为共享模式、而使用new创建不同对象的方式称之为非共享模式。

从图中我们不难发现在共享模式下aStr对象和bStr对象共同使用一个String对象的内存空间,而在非共享模式下,虽然aStr对象和bStr对象中的字符串内容一致,但是其使用的是不同的String对象的内存空间。

9.1.2==和equals()

一般情况下,对两个数据内容的比较使用“==”运算符,但是在Java对象的比较中使用“==”却有着另外含义,即“==”比较的是字符串对象所保存的内存空间的地址、也可以说是判断两个字符串对象是否使用同一个内存空间来保存数据。

而如果要判断两个字符串对象的内容是否相同,即使它们不是同一个String对象的内存空间时,我们就需要使用equals()进行判断了。

 

示例1

运行结果:

9.1.2字符串的比对

startsWith()、endsWith()和regionMatches()

startsWith()和endsWith()用于测试此字符串是否以指定的前缀开始,或者以后缀结束,而regionMatches()则是测试两个字符串区域是否相等。

它们都是字符串的比对方法,不过以上比对只能返回比对成功或者是失败,不能返回字符串中比对成功的子串数量和位置。

以下示例是判断字符串数组中保存的身份证以530作为开头身份证号码的数量,另外一个则是判断字符串中出现en的数量。

由于不能返回数量,因此需要使用循环和计数器。

示例2

9.1.3字符串转换为数字类型

字符串可以转换为基本数字类型,使用的方法是各种数字类型封装类的parseXXX()方法。

以下示例为用户输入一个代表某整数的字符串,将该字符串转换后得到对应的整数,利用该整数获得乘积后进行输入。

代码如下:

示例3

9.1.4符串中的子串定位和子串的获取

indexOf()和substring()

我们经常需要对字符串进行分析和提取相关有用的数据,此时可以使用String类型中的两个成员方法:

indexOf()和subString(),两方法的具体原型如下:

以下示例是从一个文件全路径的字符串中解析出目录和文件名的代码,代码中每次都需要使用indexOf()获得前后两个’\’的位置,然后使用substring()来获取它们之间的子串。

示例4

运行结果:

9.2StringBuffer

在Java中,StringBuffer是String类的一种补充,它们都是用于做字符串处理的类型,但是它们之间又是拥有区别的,String类是不可改变的,如果你更改了String类的对象,那么以前的就“不存在了”,所指向的是一个新的实例。

而StringBuffer类型则不会创建新的类对象,当需要修改一个StringBuffer类型对象的内容时,它会在现有内存基础上进行内存的扩容,然后再通过append()方法实现新内容的修改和链接操作。

因此如果在程序中需要对字符串进行频繁的修改连接操作的话.使用StringBuffer性能会更高。

StringBuffer在每次修改内容时都会根据需要扩充其容量,我们可以使用length()来获得新字符串的长度,以及capacity()获得当前字符串的可用容量。

以下示例中正是反映了这一特点,代码如下:

示例5

StringBuffer类除了在内存分配、使用和效率方面与String类型不同外,String类型中的所有操作函数在StringBuffer类型中都有。

在Java语言发展至今,越来越多的程序员选择使用StringBuffer来替代String做字符串的处理操作。

9.3Date时间类

Java要获取日期和时间,需要使用能存储时间,以及提供获取时间和操作时间的类型,Date是Java1.1版本以前用以获得时间和存储时间的类型。

利用Date来获得当前日期和时间的方法是使用new来创建Date的对象。

虽然Date对象可以获得并存储日期和时间内容,但是它不能将日期和时间中的年、月、日、小时、分钟、秒分别获取出来。

因为该类型的getYear()、getMonth()、getDay()、getHour()、getMinute()和getSecond()方法已经过期,在1.1版本后将使用Calendar类来替代。

想要通过Date来输出时间需要使用SimpleDateFormat来格式化时间进行输出的。

以下示例使用Date类来获得当前日期和时间,并使用SimpleDateFormat来格式化不同的时间格式来进行输出。

代码如下:

示例6

9.4Calendar类

Calendar类是1.1版本后用于操作时间的类型。

它提供了很多方法用于设置和获取时间的方法。

其中属于field的日期和时间关键字如下

YEAR

指示年

MONTH

指示月份,月份一般从0开始,因此得到的结果为1,实际上指的是2月

WEEK_OF_YEAR

当前年中的星期数,如一年中第一个星期的值为1

WEEK_OF_MONTH

指示当前月中的星期数,如一个月中第一个星期的值为1

DATE

指示当前月中的第几天,与DAY_OF_MONTH用法相同。

DAY_OF_MONTH

指示当前月中的第几天,与DAY_OF_MONTH用法相同。

DAY_OF_WEEK

示一个星期中的第几天,周日是1,周一是2,周二是3,以此类推

AM_PM

指示HOUR是在中午之前还是在中午之后。

HOUR

指示小时,为12小时制

HOUR_OF_DAY

指示小时,为24小时制

MINUTE

指示小时内的分钟,60分钟制

SECOND

指示一分钟中的秒

以下是一个获得保存当前日期和时间的Calendar对象并得到年、月、日、星期、小时、分钟、秒等具体数据的代码,其中“//”注释的代码为为Calendar对象指定一个日期和时间。

代码如下:

示例7

运行结果一:

运行结果二、

作业一

关于身份证第18是怎么计算的,原理如下:

根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。

排列顺序从左至右依次为:

六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

地址码(身份证前六位)表示编码对象常住户口所在县(市、旗、区)的行政区划代码,号码从110000到820000。

生日期码(身份证第七位到第十四位)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。

例如:

1981年05月11日就用19810511表示。

顺序码和数字码可以不同再进行验证。

问题:

输入一个18位的身份证号码,利用字符串取子串方法获得地区码、生日号码中的年、月、日并判断该身份证号码的真假。

作业二

以下是一个邮件信息格式化字符串,包含有发件人、收件人、主题、和正文内容如下:

“Lihai27@#*#4718589@#*#期末考试时间安排#*#2011年上半学期期末考试安排:

7月4日笔试和项目考试结束,7月12日前登分结束”。

运用字符串的indexOf()定位方法和substring()子串获取方法,将发件人、收件人、主题、和正文内容解析出来并分别显示,例如:

发件人:

Lihai27@

收件人:

4718589@

主题:

期末考试时间安排

正文内容:

2011年上半学期期末考试安排:

7月4日笔试和项目考试结束,7月12日前登分结束

作业三

利用Calendar类型来获得当前日期所在的月份的日历。

如图:

提示:

首先判断当前月的总天数,然后逐一设置当前月的日期,从1到最后一天。

获得每一天是属于该月的第几个星期,以及所在星期的第几天,然后把该日期数字存储在一个6*7的数组中,并格式化输出。

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2