您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > linux/Unix相关 > java5
第5章常用系统类5.1语言基础类5.2字符串5.3Vector类5.4CollectionAPI简介5.5日期和时间5.1语言基础类•5.1.1Object类•5.1.2Math类•5.1.3数据类型包装类5.1.1Object类Object类是所有Java类的最终祖先•publicbooleanequals(Objectobj)除了String类将该方法进行了重写(提供了两个对象的“深度”比较),其他类的该方法与==一样处理,均比较两个对象的引用是否相同。•publicStringtoString()返回对象的字符串描述•publicfinalClassgetClass()obj.getClass().getName()可获取obj对象的类名称。说明:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的。A对象B对象ABprotectedObjectclone():生成当前对象的一个拷贝,并返回这个复制对象。5.1.2Math类1)常量•Math.PI代表数学上的π•Math.E代表数学上的e2)Math类的主要方法•intabs(inti)•intmax(inti1,inti2)•doublefloor(doubled)•doublerandom()•longround(doubled)•doublelog(doubled)•doubleexp(doublex)•doublepow(doublea,doubleb)•doublesqrt(doublea)•doublecos(doubled)产生0~1之间,不包括0和1思考?X=(int)(random()*100)例5-1利用随机函数产生20个整数给一个一维数组赋值,输出该数组的所有元素,每行4个,找出其中的素数,并输出对应的元素位置publicclasspickPrime{publicstaticvoidmain(Stringargs[]){inta[]=newint[20];for(inti=0;i20;i++){a[i]=(int)(Math.random()*1000);}for(inti=0;i20;i++){System.out.print(+a[i]);if((i+1)%4==0)System.out.println();}System.out.println(素数如下...);for(inti=0;i20;i++){if(prime(a[i]))System.out.println(a[+i+]=+a[i]);}}privatestaticbooleanprime(intn){for(intk=2;k=Math.sqrt(n);k++){if(n%k==0)returnfalse;}returntrue;}5.1.3数据类型包装类基本数据类型数据类型类booleanBooleancharCharacterdoubleDoublefloatFloatlongLongintIntegershortShortbyteByte包装类的用途(1)构造方法形态多样例:Integer类•publicInteger(intvalue)•publicInteger(Strings)(2)每个包装类均提供有相应的方法用来从包装对象中抽取相应的数据•Boolean类的对象,可以调用booleanValue()方法•Integer类的对象,可以调用intValue()方法•Character的对象,可以用charValue()方法包装类的用途(续)(3)提供了各种static方法•Character类提供有isDigit(charch)方法可判断一个字符是否为数字•除Character类外的所有包装类均提供有valueOf(Strings)的静态方法,它将得到一个相应类型的对象例:Long.valueOf(“23”)构造返回一个包装了数据值23的Long对象。(4)还有一组非常有用的静态包装方法是parseXXX()方法例如:Integer.parseInt(Strings)5.2字符串•5.2.1String类•5.2.2StringBuffer类String类主要用于对字符串内容的检索、比较等操作,操作的结果通常得到一个新字符串,但源串的内容不会改变。5.2.1String类1、构造方法:•publicString()•publicString(Strings)•publicString(StringBufferbuf)•publicString(charvalue[])举例:Strings=newString(ABC);Strings=ABC;char[]helloArray={'h','e','l','l','o'};StringhelloString=newString(helloArray);如果将字符串常量转化为字符数组,可用方法toCharArray()。2、比较两个字符串•booleanequals(ObjectanObject)•intcompareTo(StringanotherString)•booleanequalsIgnoreCase(StringanotherString)Strings1=Hello!World;Strings2=Hello!World;booleanb1=s1.equals(s2);booleanb2=(s1==s2);注意:Java语言对待字符串常量的优化处理策略b1=true;b2=trueStrings1=Hello!World;Strings2=newString(Hello!World);booleanb1=s1.equals(s2);booleanb2=(s1==s2);b1=true;b2=false3.字符串的其它常用方法(1)求字符串长度length()Strings=Hello!;System.out.println(s.length());(2)字符串的连接•利用“+”运算符例:Strings=Hello!;s=s+Mary+4;//s的结果为Hello!Mary4•方法concat(Strings)Strings=4+3=;System.out.println(s.concat(“7”));//输出4+3=7System.out.println(s);//输出4+3=串变量3.字符串的其它常用方法(续1)(3)前缀和后缀的处理•booleanstartsWith(Stringprefix)•booleanendsWith(Stringprefix)•Stringtrim()(4)字符串中单个字符ch的查找•intindexOf(intch)•intlastIndexOf(intch)•intindexOf(intch,intfromIndex))•intlastIndexOf(intch,intfromIndex))注意:方法的参数是一个整数,它对应字符的Unicode编码值。通常调用方法前将字符强制转换为整数,但字符参数也能正确实现调用,在执行方法调用时将自动进行参数的匹配转换。考察以下程序的运行结果Strings=Java是面向对象的语言,Javascript是脚本语言;intk=-1;do{k=s.indexOf((int)‘是’,k+1);System.out.print(k+\t);}while(k!=-1);运行结果为:524-1有一个空格3.字符串的其它常用方法(续2)(5)字符串中子串str的查找•intindexOf(Stringstr)•intlastIndexOf(Stringstr)•intindexOf(Stringstr,intfromIndex))•intlastIndexOf(Stringstr,intfromIndex))考虑以下程序段,写出运行结果Strings=Java是面向对象的语言,Javascript是脚本语言;Stringsub=语言;for(inti=s.length();i!=-1;){i=s.lastIndexOf(sub,i-1);System.out.print(i+\t);}结果为:2610-13.字符串的其它常用方法(续3)(6)字符串的替换与提取•Stringreplace(charoldchar,charnewchar)•StringreplaceAll(Stringregex,Stringreplacement)•charcharAt(intindex)•Stringsubstring(intbeginIndex,intendIndex)•Stringsubstring(intbeginIndex)例5-2从一个代表带有路径的文件名中分离出文件名和路径publicclassGetFilename{privateStringfullpath;privatefinalcharpathSeparator='\\';publicGetFilename(Stringfname){fullpath=fname;}/*获取文件名,文件名是最后一个分隔符后面的子串*/publicStringgetname(){intpos=fullpath.lastIndexOf(pathSeparator);if(pos==-1)returnfullpath;returnfullpath.substring(pos+1);}转义字符publicStringgetPath(){intpos=fullpath.lastIndexOf(pathSeparator);if(pos==-1)returnnull;returnfullpath.substring(0,pos);}publicstaticvoidmain(Stringags[]){GetFilenamefn=newGetFilename(d:\\java\\example\\test.java);System.out.println(filename=+fn.getname());System.out.println(filepath=+fn.getPath());}}/*获取路径*/在String类中也提供了一个方法split用来根据指定分隔符分离字符串格式:publicString[]split(Stringregex)例如:对于字符串str=boo:and:foosplit(“:”)的结果为:{boo,and,foo}•StringBuffer类主要实现串内容的添加、修改、删除。5.2.2StringBuffer类1.创建StringBuffer对象•publicStringBuffer()•publicStringBuffer(intlength)•publicStringBuffer(Stringstr)2.StringBuffer的主要方法•publicStringBufferappend(Objectobj)•publicStringBufferinsert(intposition,Objectobj)•publicStringBuffersetCharAt(intposition,charch)•publicStringBufferdeleteCharAt(intposition)•StringBufferreplace(intstart,intend,Stringstr)•Stringsubstring(intstart,intend)思考以下代码段对应的运行结果•StringBufferstr1=newStringBuffer();•str1.append(Hello,mary!);•str1.insert(6,30);//匹配方法StringBufferinsert(intoffset,inti)•System.out.printl
本文标题:java5
链接地址:https://www.777doc.com/doc-7028037 .html