Java工具类.docx

上传人:b****2 文档编号:2373750 上传时间:2023-05-03 格式:DOCX 页数:35 大小:33.75KB
下载 相关 举报
Java工具类.docx_第1页
第1页 / 共35页
Java工具类.docx_第2页
第2页 / 共35页
Java工具类.docx_第3页
第3页 / 共35页
Java工具类.docx_第4页
第4页 / 共35页
Java工具类.docx_第5页
第5页 / 共35页
Java工具类.docx_第6页
第6页 / 共35页
Java工具类.docx_第7页
第7页 / 共35页
Java工具类.docx_第8页
第8页 / 共35页
Java工具类.docx_第9页
第9页 / 共35页
Java工具类.docx_第10页
第10页 / 共35页
Java工具类.docx_第11页
第11页 / 共35页
Java工具类.docx_第12页
第12页 / 共35页
Java工具类.docx_第13页
第13页 / 共35页
Java工具类.docx_第14页
第14页 / 共35页
Java工具类.docx_第15页
第15页 / 共35页
Java工具类.docx_第16页
第16页 / 共35页
Java工具类.docx_第17页
第17页 / 共35页
Java工具类.docx_第18页
第18页 / 共35页
Java工具类.docx_第19页
第19页 / 共35页
Java工具类.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java工具类.docx

《Java工具类.docx》由会员分享,可在线阅读,更多相关《Java工具类.docx(35页珍藏版)》请在冰点文库上搜索。

Java工具类.docx

Java工具类

常用类

Object类

它是Java所有类的根类.所以Java的所有对象都拥有Object类的成员.

1.一般方法

booleanequals(Objectobj)//本对象与obj对象相同,返回true

StringtoString()//返回本对象的字符串表达形式,默认返回类名称和十六进制数的

编码,即:

getClass().getName+’@’+Integer.toHexString(hashCode());

如果要显示自定义的对象,则需要覆盖这个方法。

protectedvoidfinalize()throwsThrowable//对象销毁时被自动调用,

protectednativeinthashCode()

返回对象的Hash码,Hash码是表示对象的唯一值,故Hash码相同的对象是同一对象。

2.控制线程的方法

finalnativevoidwait()//等待对象

finalnativevoidnotify()//通知等待队列中的对象进入就绪队列

finalnativevoidnotifyAll()//通知所有处于等待队列中的对象进入就绪队列

3.关于Object类的几点说明:

3.1.native<方法>是指用C++语言编写的方法。

3.2.“==”运算符一般用于基本数据类型的比较,如果用于两个引用对象的比较,则

只有当两个引用变量引用同一个对象时,才返回true,否则返回false.

Strings1=newStrng(“java”);

Strings2=newStrng(“java”);

System.out.pritnln(s1==s2);//显示false

但是,假如不使用new关键字,创建String型对象s3,s4,则它们引用的是同一个对象。

Strings3=“java”;

Strings4=“java”;因为没有使用new关键字,所以s4引用既存的对象

System.out.pritnln(s3==s4);//显示true,

3.3.比较对象内容时,使用equals()函数

Object类的equals()定义

Publicbooleanequals(Objectobj){

return(this==obj);

}

由于String类覆盖了继承自Object类的equals()方法,它比较的是引用对象的内容.

所以,没有覆盖equals()方法的类的对象使用该方法与另一对象进行比较时,永远返

回false;只是因为此时进行比较调用的是Object的equals方法.

4.Object引用型变量

Object引用型变量可以用来引用所有的对对象.

Object[]obs=newObject[3];

obs[0]=newStrng(“12345”);//将String对象赋给obs[0]

obs[0]=newBoolean(true);

obs[0]=newInteger(100);

5.toString()方法

该方法返回本对象的字符串表示.当需要显示子类对象时,系统自动调用该对象的toString()方法,如果该对象没有覆盖祖先类的toString()方法,则系统默认调用Object的这个方法,从而显示类的完整路径名称.反之,将按子类的toString()方法显示其内容.

classStudent{

Strngname;

PublicStudent(){

this.name=”洋洋”

}

}

publicclassTest{

publicstaticvoidmain(String[]args){

Studentst=newStudent();

System.out.println(st);

}

}

//子类覆盖toString()

classStudent{

Strngname;

PublicStudent(){

this.name=”洋洋”

}

publicStringtoString(){

retrun“你的姓名:

”+this.name;

}

}

publicclassTest{

publicstaticvoidmain(String[]args){

Studentst=newStudent();

System.out.println(st);//显示

}

}

6.类的层级图

A:

继承自Object类的成员+

B:

继承自Object类的成员++

C:

继承自Object类的成员+++

D:

继承自Object类的成员+++

Character类

这是一个字符包装器类,它封装了对字符的操作

一.构造函数

Character(charc)

二.静态方法:

1.检查是否为某类字符

staticbooleanisLetter(char ch)返回true,如果ch是字母字符

staticbooleanisDigit(char ch)返回true,如果ch是数字字符

staticbooleanisLetterOrDigit(char ch)返回true,如果ch是字母或数字字符

staticbooleanisLowerCase(char ch)//返回true,表示ch为小写字母

staticbooleanisUpperCase(char ch)//返回true,表示ch为大写字母

staticbooleanisSpaceChar(char ch)//返回true,表示ch为空格

2.大小写字符转换

staticchartoLowerCase(char ch)//转换字符c为小写

staticchartoUpperCase(char ch)//转换字符c为大写

String类

String是一种引用类型。

String是一种使用频率很高的数据类型.

1.构造函数:

String(Stringoriginal)

String(char[]cc)

String(char[]chars,intstartIndex,intcharCount)

String(byte[]chars)//使用平台默认字符编码,用byte[]构造一个String对象

String(byte[]chars,intstartIndex,intcharCount)

String(StringBuffersb)

2.静态函数:

StringvalueOf(objectobj)将任意类型转换为字符串。

3.操作函数:

3.1.类型转换

char[]toCharArray();返回字符串对应的字符数组

3.2.获得字符

charcharAt(intindex)返回索引为index位置的字符

3.3.删除空白字符

Stringtrim()删除字符串前后空格

3.4.分裂字符串

String[]splite(Stringrex)按分隔字符串进行分隔,返回字符串数组

说明:

如果字符串用英文句号”.”分隔,则需要用”\\.”表示,例如:

Strings="2007.10.18";

String[]sArray=s.split("\\.");因为英文句号”.”为正则表达式的特殊字符

3.5.查找字符串

booleanstartsWith(Strings)

在本串开始部分查找是否有与s匹配的串。

返回true,表示匹配,

booleanendsWith(Strings)

在本串末尾部分查找是否有与s匹配的串。

返回true,表示匹配,

booleanequals(Objectobj)true表示本串与obj串内容相等

booleanequalsIgnoreCase(StringanotherString)

忽略大小写比较,返回true表示本串与obj串内容相等

intindexOf(Strings)

从本串开始部分查找是与s匹配的串。

返回s在本串中的起始位置

intlastIndexOf(Strings)

从本串末尾查找是与s匹配的串。

返回s在本串中的起始位置

3.6.字符串比较

intcompareTo(StringanotherString)

返回负数表示本串

0表示本串等于anotherString;

正数表示本串>anotherString;

intcompareToIgnoreCase(StringanotherString)忽略大小写比较

返回负数表示本串

0表示本串=anotherString;

正数表示本串>anotherString;

3.7.取子字符串

Stringsubstring(intstartPos,intendPos)

返回startPos――endPos之间的字符串(不含endPos位置的字符)。

Stringsubstring(intstartPos)返回从startPos开始直到串尾的全部字符

3.8.大小写转换

StringtoLowerCase()转换为小写字母

StringtoUpperCase()转换为大写字母

3.9.拷贝

getChars(intStartPos,intendPos,char[]c,intstartIndex)拷贝startPos――endPos之间的字符串(不含endPos位置的字符)到字符数组c中,从索引startIndex开始存放

getBytes(intStartPos,intendPos,byte[]b,intstartIndex)拷贝startPos――endPos

之间的字符串(不含endPos位置的字符)到字节数组b中,从索引startIndex

开始存放byte[]getBytes();返回byte数组

bye[]getBytes()使用平台默认字符编码,将当前字符串转换为一个byte数组

3.10.获得串长度

intlength()返回串长度(字符个数)

3.11.替换子串

Stringreplace(charoldChar,charnewChar)

将本串中全部oldChar字符替换为newChar字符,并返回替换后的字符串

StringreplaceAll(StringoldStr,StringnewStr)

将本串中全部oldStr串替换为newStr串,并返回替换后的字符串,

当newStr为空串时,可删除oldStr

StringreplaceAll(Stringregex,Stringreplacement)

将所有regex用replacement替换,并返回替换后的字符串

StringreplaceFirst(Stringregex,Stringreplacement)

将第一个regex用replacement替换,并返回替换后的字符串

3.12.类型转换

staticintInteger.parseInt(Strings);//转换为int类型

staticlongLong.parseInt(Strings);//转换为int类型

staticdoubleDouble.parseInt(Strings);//转换为int类型

说明:

上述类型的转换如果不成功,将抛出NumberFormatException异常。

3.13.匹配

booleanmatches(Stringpattern)//pattern为正则表达式。

当字符串与pattern匹配时,返回true

常见的匹配模式:

A.匹配超链接标记

.*?

[‘\”]?

.*?

>

B.匹配e-mail^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+([.][a-z0-9-]+)*$

4.字符串的连接

用运算符“+”进行两个字符串的连接。

如:

Strings1=”sun”;

Strings2=”company”;

Strings=s1+s2;//此时s内容为:

suncompany

5.关于String的几点说明:

5.1.由于String的特殊性,所以系统处理这种类型时,内部使用了String池,

用意提高性能;当用赋值号为一个字符串赋值时,系统首先在String池

中查找,如果找到,则直接将其引用赋值给目标变量,如果没有找到,则

申请一个新的串,并将其引用赋值给目标变量,同时将这个新串放到String

池中。

5.2.用”+”连接两个字符串,总是产生一个新的串。

5.3.如果频繁使用”+”运算符进行字符串链接,则使用StringBuffer或StringBuilder

可以大大提高性能。

思考:

1.设计一个方法,booleanisNumeric(StringsNumber)

用以检查输入的字符串是否全由数字字符组成,如是,返回true,否则,返回false.

1.编写一个方法,使用异或运算,对输入字符串加密,并输出密文。

调用同一函数,输入密文,同时输出明文。

2.编写isLike()方法,用以判断字符串是否匹配。

“a*”:

以字符’a’开头的字符串

“*bc*”:

包含字符串’bc’的字符串

“A?

?

”:

以字符’A’开头,且长度为3的字符串

“?

A?

”:

以字符’A’居其间,且长度为3的字符串

classMyString{

Stringstr;

//其它方法或成员定义

//构造函数

publicBooleanisLike(Stringregex){

……

}

}

newMyString(“abcd”).isLike(“a*”)--true

newMyString(“ABCD”).isLike(“*C*”)--true

newMyString(“ABCD”).isLike(“ABC?

”)--true

3.设计一个静态方法,返回字符c重复n次的字符串

publicstaticStringsameChar(charc,intn)

4.设计一个方法,将字符串s左边用字符fillChar填充,使其最终长度为length

publicleftPadding(Strings,intlength,charfillChar)

5.设计一个方法,将字符串s右边用字符fillChar填充,使其最终长度为length

publicrightPadding(Strings,intlength,charfillChar)

6.设计一个方法,实现返回字符串左边n个字符。

7.设计一个方法,实现返回字符串右边n个字符。

8.使用if语句和switch语句判断手机号码的种类.手机号码为11位,各位全部位数字,且

前两位为13,第三位数字为5---9时属于移动手机号码,为0,1时属于连通GSM手机号码,为3时属于联通CDMA手机号码,为2,4时无效.

9.设计一方法,输入十进制数,返回12进制字符串。

10.设计一个类,封装十六进制操作。

11.编写一方法,输入一个字符串,输出布尔量。

当该字符串是回文时,返回true,否则,返回false

12.输入一个英文字符串,统计出其中各字符出现的次数,并以下列样式输出:

a=?

b=?

c=?

d=?

e=?

f=?

g=?

h=?

i=?

j=?

13.输入一个英文字符串,统计出其中各字符出现的次数,并以下列样式输出:

a=?

b=?

c=?

d=?

e=?

f=?

g=?

h=?

i=?

j=?

14.设计一个星座类,并为其添加一个带参数的构造函数,

classConstellation{

privateCalendarbirthday;

publicConstellation(Stringbirthday){

}

StringgetConstellation(){返回星座

staticpublicStringgetConstellation(Stringbirthday)//返回星座

}

intgetBornYear(){

}

intgetBornMonth(){

}

intgetBornDay(){

}

}

出生日期与星座关系如下:

1.20---2.18水瓶座

2.19----3.20双鱼座

3.21----4.19.牧羊座

4.20---5.20金牛座

5.21-----6.21双子座

6.22.----7.22巨蟹座

7.23----8.22狮子座

8.23----9.22处女座

9.23.----10.23天秤座

10.24-----11.22天蝎座

11.23---12.21射手座

12.22.----1.19山羊座

15.编写一个计算英文句子中最长单词的长度(字符数),假设该英文句子中只含有字母和

空格,句子以”.”结尾

16.巴黎时间比北京时间晚7个小时,纽约时间比北京时间晚12个小时,东京时间比北京时间早2个小时,设计一个方法,根据输入的北京时间输出相应的巴黎时间,纽约时间和东京时间。

如当前北京时间为8点,则巴黎时间为1点,纽约时间为前一天20点,东京为10点。

16.删除字符串s中所有的字串childStr.

17.写一函数,用于删除字符串左边的特定字符,如果删除字符串右边的特定字符呢?

StringBuffer类

前已述及,String类创建的字符串是不可修改的,一般用于固定场合。

如果要对字符串进行动态增减,则用StringBuffer类,因此,StringBuffer又称动态字符串。

1.构造函数

StringBuffer()

StringBuffer(intiniCapacity)

StringBuffer(Strings)

2.操作函数:

2.1.获得长度

intlength()返回字符串的个数

2.2.添加对象

append(objectobj)//在尾部添加对象

insert(intStartPos,objectobj)在StartPos位置插入对象obj

2.3.返回字符串

StringtoString()

2.4.删除子串

StringBufferdelete(intstart,intend)

删除从start开始到end-1之间的字符串,并返回当前对象的引用

StringBufferdeleteCharAt(intindex)

删除索引为index位置处的字符,并返回当前对象的引用

2.5.获得字符

charcharAt(intindex)返回索引处的字符

2.6.修改字符

voidsetCharAt(intindex,charc)设置索引index处的字符为c

2.7.获得子串

Stringsubstring(intstartIndex)返回从startIndex开始直到最后的全部字符

Stringsubstring(intstartIndex,intendIndex)返回范围startIndex--endIndex的字符串

2.8.反转字符串

StringBufferreverse()将该对象实体中的字符序列反转,并返回当前对象的引用。

2.9.替换子串

Stringreplace(intstartIndex,intendIndex,StringnewStr)

用newStr替换当前对象从startIndex到endIndex-1之间的字符序列,并返回对

当前对象的引用。

练习:

1.使用StringBuffer类,构建字符堆栈

publicclassCharStack{

privateStringBufferstack;

publicCharStack(){

statck=newStringBuffer();

}

publicCharStack(intcapacity){

statck=newStringBuffer(capacity);

}

publicvoidpush(charc){

//将字符压入堆栈……

}

publicintpop(){

//将字符弹出堆栈……

}

publicchar[]list(){

//返回堆栈数组……

}

publicStringtoString(){

//将堆栈中的字符转换为字符串…

}

}

2.编写一个检查java表达式中括号是否成对出现的函数。

例如:

Stringexp1=Math.sqrt(p*(p-a[0])*(p-a[1])*(p-a[2]));中括号是配对的,而

Stringexp2=Math.sqrt(p*(p-a[0]*(p-a[1])*(p-a[2]));中括号是不配对的

StringBuilder类

该类在jdk1.4之后的版本才支持,它实现了与StringBuffer同样的接口,所以它们的操作相同,但是,由于StringBuilder没有实现同步机制,而StringBuffer实现了同步,所以StringBuilder比StringBuffer具有更高的性能。

适合于对字符串进行动态增减的情形。

三.StringTokenizer类

该类用于分析字符串,特别适合于一个字符串用若干特殊字符分隔的情况。

1.构造函数:

StringTokenizer(Stringstr)用缺省的分隔符(空格,回车,换行)分隔字符串

StringTokenizer(Stringstr,Stringdelim)用指定的分隔符delim分隔

2.属性函数:

countTokens();返回分隔后的字符串总数

3.操作函数:

booleanhasMoreElements()true表示还有元素

ObjectnextElement()返回下一个元素

booleanha

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

当前位置:首页 > 解决方案 > 学习计划

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

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