Java工具类.docx
- 文档编号:12026773
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:35
- 大小:33.75KB
Java工具类.docx
《Java工具类.docx》由会员分享,可在线阅读,更多相关《Java工具类.docx(35页珍藏版)》请在冰豆网上搜索。
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:
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 工具