java语言11第9章 常用实用类new

java语言11第9章 常用实用类new

ID:34392829

大小:196.92 KB

页数:73页

时间:2019-03-05

上传者:xinshengwencai
java语言11第9章 常用实用类new_第1页
java语言11第9章 常用实用类new_第2页
java语言11第9章 常用实用类new_第3页
java语言11第9章 常用实用类new_第4页
java语言11第9章 常用实用类new_第5页
资源描述:

《java语言11第9章 常用实用类new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

第9章常用实用类 9.1String类java语言专门提供了用来处理字符序列的String类,因此,Java程序可以使用String类的对象来处理有关字符序列。 9.1.1构造字符串对象  可以使用String类来创建一个字符串变量,字符串变量是对象 1.常量对象  字符串常量对象是用双引号括起来的字符列,在java中,字符串相同的对象是同一引用。 2.字符串对象•可以使用String类声明字符串对象,用String类的构造方法创建字符串对象,也可以用一个已经创建的字符串创建另一个字符串。•可以用字符数组创建一个字符串对象:•char[]a={‘J’,’a’,’v’.’a’};•Strings=newString(“Java”);•还可以用字符数组的一部分创建字符串:•char[]a={“壹”,”贰”,”叁”,”肆”,”伍”,”陆”,”柒”,”捌”}•Strings=newString(a,2,4); 3.引用字符常量对象•字符串常量是对象,因此可以把字符串常量的引用赋值给一个字符串变量:•Strings1,s2;•s1=“abcd”;•s2=“abcd”;•这时s1和s2具有相同的引用,因而具有相同的实体。 9.1.2String类的常用方法 1.publicintlength()•使用length()方法可以获取一个字符串的长度:•Stringchina=“欢渡90年校庆”;•intn1,n2;•n1=china.length();•n2=“字母abc”.length(); 2.publicbooleanequals(Strings)•字符串对象调用equals(Strings)方法比较当前字符串对象的实体是否与参数s指定的字符串的实体相同:•Stringtom=newString(“天道酬勤”);•Stringboy=newString(“知心朋友”);•tom.equals(boy)的值是false。 3.publicbooleanstartsWith()publicbooleanendWith()•字符串对象调用startWith()方法,判断当前字符串对象的前缀是否是参数s指定的字符串:•Stringtt=“天气预报,阴有小雨”;•Stringjj=“获得铜牌”;•则:•tt.startWith(“天气”)的值为true。•jj.endWith(“天气”)的值为false。 4.publicintcompareTo(Strings)  字符串对象调用comparTo()方法,按字典与参数s指定的字符串比较大小。如果当前字符串与s相同,该方法返回值0;如果当前字符串对象大于s,该方法返回正值:Stringstr=“abcde”; 5.publicbooleancontains(Strings)•字符串对象调用contans方法,判断当前字符串对象是否含有参数指定的字符串s:•Stringsource=“student”;•source.contains(“stu”)的值就是true。 6.publicintindexOf(Strings)•字符串对象调用indexOf()方法从当前字符串的头开始检索字符串s,返回首次出现s的位置。如果没有检索到字符串返回-1。•字符串对象调用indexOf(Strings,intstartpoint)方法从当前字符串的startpoint位置开始检索字符串s,返回首次出现s的位置。如果没有检索到字符串返回-1。 7.publicStringsubstring(intstartpoint)•字符串对象调用该方法获得一个当前字符串的子串,该子串是从当前字符串的startpoint处以最后所得到的字符串。•字符串对象调用substring(intstart,intend)方法获得一个当前字符串的子串,该子串是从当前字符串的startpoint处到endpoint之前所得到的字符串。 8.publicStringtrim()•一个字符串s通过调用方法trim()得到一个字符串对象,该字符串对象是s去掉前后空格后的字符串。 9.1.3字符串与基本数据的相互转化•java.lang包中的基本数据类型类的方法parrseXXX方法可以将数字字符串转化为基本数据类型:•publicstaticbyteparseByte(Strings); •String类的方法valueOf可以将数字转换成字符串:•publicstaticStringvalueOf(intn)等。 9.1.4对象的字符串表示•所有的类都默认是java.lang包中Object类的子类或间接子类。Object类有一个publicStringtoString方法,一个对象通过调用该方法返回的字符串的一般形式:  创建对象的类名@对象引用的字符表示如果想输出指定的类内容须覆盖toString方法。 9.1.5字符串与字符、字节数组 1.字符串与字符数组•String类提供了将字符串存放到数组中的方法:•publicvoidgetChars(intstart,•intend,•charc[],•intoffset) 2.字符串与字节数组•String类的构造方法String(byte[])用指定的字节数组构造一个字符串对象。•String(byte[],intoffset,intlength)构造方法用指定的字节数组的一部分,即从数组起始位置offset开始取length个字节构造一个字符串对象。 •publicbyte[].getBytes()方法使用平台默认的字符编码将当前的字符中转化为一个字节数组。•publicbyte[]getBytes(StringcharsetName)使用参数指定字符编码,将当前字符串转化为一个字节数组。•注:带参数的getByte()会抛出UnsupportedEncodeingExceptionte异常,因此,必须在try-catch语句中调用带参数的getByte()方法。 3.字符串加密算法*•可使用一个字符串password作为密码对另一个字符串sourceString进行加密: 9.1.6正则表达式及字符串的替换与分解 1.正则表达式*•一个正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称作正则表达中的元字符,字符串对象调用:•publicbooleanmatches(Stringregex)方法可以判断当前字符串是否和参数regex指定的正则表达式匹配。•书上表9.1常用符及其意义,表9.2限定修饰符 2.字符串替换*•JDK1.4以后,字符串对象调用:•publicStringreplaceAll(•Stringregex,•Stringreplacement)•式中regex指的正则表达式匹配的字符串被参数replacement指定的字符串替换后的字符串。 3.字符串的分解•JDK1.4之后String类提供了一个实用的方法:•publicString[]split(Stringregex) 方法说明charcharAt(intindex)获取给定的Index处的字符intcompareTo(StringanotherString)按照字典的方式比较两个字符串intcompareToIgnoreCase(Stringstr)按照字典的方式比较两个字符串,忽略大小写Stringconcat(Stringstr)将给定的字符串连接到这个字符串的末尾staticStringcopyValueOf(char[]data)创建一个和给定字符数组相同的String对象staticStringcopyValueOf(char[]使用偏移量,创建一个和给定字符数组data,intoffset,intcount)相同的String对象booleanequals(ObjectanObject)将这个String对象和另一个对象String进行比较。booleanequalsIgnoreCase(string将这个String对象和另一个对象string进anotherString)行比较忽略大小写voidgetChars(intstrbegin,int将这个字符串的字符复制到目的的数组strend,char[]data,intoffset)intindexOf(intchar)字符在串中出现的第一个位置 方法说明intindexOf(intch,intfromIndex)从给定的索引处开始,出现给定字符的第一个位置索引intindexOf(Stringstr)产生给定子串的第一个位置索引intindexOf(Stringstr,intfromIndex)从给定的索引处开始,产生给定子字符串中出现的第一个位置索引intlength返回字符串的长度booleanregionMatches(boolean检查两个字符串区域是否相等,允许忽ignoreCase,inttoffset,Stringother,int略大小写ooffsetintlen)Stringreplace(charoldChar,charnew替代串中指定的字符Char)booleanstarsWith检查这个字符串是否以给定的前缀开头booleanstarsWith从给定的索引处开头,检查这个字符串是否以给定的前缀开头Stringsubstring(intstrbegin)从指定位置开始向右截取子串Stringsubstring(intstrbengin,int从指定位置开始向右截取到某一位置形strend)成的子串。 方法说明char[]toCharArray()将这个字符串转换为新的字符数组StringtoLowerCase()将这个String对象中的所有字符变为小写StringtoString()返回这个对象StringtoUpperCase()将这个String对象中的所有字符变为大写Stringtrim()去年字符串开头和结尾的空格staticStringvalueOf(inti)将int参数转化为字符串返回。该方法有很多重载方法,用来将基本数据类型转化为字符串。如:staticStringvaluOf(floatf),staticStringvalueOf(longl)等。 9.2StringBuffer类 9.2.1StringBuffer对象的创建•String类创建的字符串对象是不可修改的,也就是说,String字符串不能修改、删除或替换字符串中的某个字符,即String一旦创建,那么实体是不可再发生变化的。而StringBuffer类能创建可修改的字符串序列。该类对象的实体的内在空间可以自动改变大小,便于存放一个可变的字符序列。 例•StringBufferbuffer=newStringBuffer(“我喜欢”);•s.append(“玩蓝球”); StringBuffer的构造方法1.StringBuffer():空字符串缓冲区,长度为16个字节。2.StringBuffer(intsize):空字符缓冲区,长度为size。3.StringBuffer(Strings):将字符缓冲区内容初始化为s。长度为s.length()+16 9.2.2StringBuffer类的常用方法 1.append方法•使用StringBuffer类的append方法可以将其他java类型的数据转化为字符串后,再追加到StringBuffer对象中。 2.publiccharcharAt()•charcharAt(intn)得到参数n指定位置上的单个字符。当前对象实体中的字符串序列的第一个位置为0。•setCharAt(intn,charch)将当前StringBuffer对象实体中的实体中的字符串位置n处的字符用参数ch指定的字符替换。 3.StringBufferinsert(intindex,Stringstr)•StringBuffer对象使用insert方法将参数str指定的字符串插入到参数index指定的位置,并返回当前对象的引用。 4.publicStringBufferreverse()•StringBuffer对象使用reverse方法将该对象实体中的字符翻转,并返回当前对象的引用。 5.StringBufferdelete(intstartindex,intendIndex)•delete方法从当前对象实体中的字符串中删除一个子字符中,并返回当前对象和。这里startIndex指定了需删除的第一个字符的下标,而endIndex指定了需删除的最后一个字符的下一个字符的下标。 6.StringBufferreplace(intstartIndex,intendIndex)•replace方法将当前StringBuffer对象实体中的字符串的一个子字符串用参数str指定的字符串替换。被替换的子字符串上标startIndex和endIndex指定。 9.3StringTokenizer类*•有时需要分析字符串并将字符串分解成可被独立使用的单词,这些单词叫做语言符号。当分析一个字符串并将字符串分解成可被独立使用的单词时,可以使用java.util包中的StringTokenizer类。 StringTokenizer类的构造方法•StringTokenizer(Strings):为字符串s构造一个分析器。使用默认的分隔标记,即空格符、换行符、回车符、Tab符、进纸符做分隔标记。•StringTokenizer(Strings,Stringdelim):为字符串s构造一个分析器,参数delim中的字符被作为分隔标记。 9.4Date类•程序设计中可能需要日期、时间等数据,可使用java.util包中的Date类,该类的实例可用于处理和日期、时间相关的数据。 9.4.1构造Date对象 1.使用无参数构造方法•使用Date类的无参数构造方法创建对象可以获取本地当前时间:•DatenowTime=newDate(); 2.使用带参数的构造方法•计算机系统将其自身时间公元设计在1970年1月1日0时,可以根据这个时间使用Date的带参数的构造方法:•Date(longtime)•来创建一个Date对象:•Datedate1=newdate(1000);•Datedate2=newdate(-1000);•Date对象表示时间默认是:星期、月、日、小时、分、秒、年。 9.2.4日期格式化•我们可能按照某种习惯来输出时间,如时间顺序:年 月 日 星期。可用java.text包中的DateFormat的子类SimpleDateFormat来实现日期的格式化。SimpleDateFormat有一个常用构造方法:•publicSiimpleDateFormat(Stringpattern);•该构造方法可以用参数pattern指定的格式创建一个对象,该对象调用:•publicStringformat(Datedate) 9.5Calendar•在java.util包中。使用Calendar类的static方法getInstance()可以经一个日历对象:•Calendarcalendar=Calendar.getInstance();•使用set方法可以将日历设到任意时间•使用get方法可以获取年、月、小时、星期等信息。 9.6Math类和BigInteger类 9.6.1Math类•在编写程序时,可能需要计算一个数的平方根、绝对值,获取一个随机数等。java.lang包中的Math类包含了许多用来进行科学计算的类方法,这些方法可以直接通过类名调用。 E和PI•Math类中有两个静态常量,E和PI它们的值为:•E=2.7182828284590452345•PI=3.14159265358979323846 Math类的常用类法•publicstaticlongabs(doublea)•publicstaticdoublemax(doublea,doubleb)•publicstaticdoublemin(doublea,doubleb)•publicstaticdoublerandom()•publicstaticdoublepow(doublea,doubleb)•publicstaticdoublesqrt(doublea)•publicstaticdoublelog(doublea)•publicstaticdoublesin(doublea)•publicstaticdoubleasin(doublea) 9.6.2BigInteger类*•程序有时需要处理大整数,java.math包中的BigInteger类提供任意精度的整数运算:•可以用publicBigInteger(Stringval)构造一个十进制的BigInteger对象。该构造方法可能会发生异常。 BigInteger的常用方法•publicBigIntegeradd(BigIntegerval)•publicBigIntegersubstact(BigIntegerval)•publicBigIntegermupltiply(BigIntegerval)•publicBigIntegerdevide(BigIntegerval)•publicBigIntegerremainder(BigIntegerval)•publicBigIntegercompareTo(BigIntegerval) •publicBigIntegerabs()•publicBigIntegerpow(inta)•publicStringtoString()•publicStringtoString(intp) 9.7DecimalFormat类•程序可能对数字型数据的输出格式有特殊的要求,即对输出的数字结果进行必要的格式化。可以使用java.text包中的DecimalFormat类对数字进行格式化,以符合要求。 9.7.1格式化数字 1.格式化整数位和小数位•可以使用DecimalFormat类的构造方法,并将把一个数字“0”和“.”组成的字符传递给构造方法的参数来创建一个DecimalFormat对象。然后调用:•publicfinalStringformat(doublenumber)•其中由数字“0”和”.”组成的中称做DecimalFormat对象中的数字格式化模式。 2.整数位的分组•当希望将数字的整数部分分组,可以在DecimalFormat对象中的数字格式化模式前面增加分组为前缀。分组是用逗号做分隔的“#”组成的字符串,例如:“#,##,###”,这些被逗号做分隔的“#”组成的字符串称做分组中的分隔符。•如果分组中有多个分隔符,则最后一个分隔符和整数之间的间隔才是分组的大小。 3.格式化为百分数或千分数•格式化成百分数在数字格式化模式尾加%•格式化成千分数在数字格式化模式尾加u2030 4.格式化为科学计数•格式化成科学计数时在数字模式化模式尾加“E0”。 5.格式化为货币值•格式货币值时对象中的数字格式化模式模式尾加货币符号,如:¥、$等。 9.7.2将格式化字符串转化为数字可将形如”12,123,446”或“1,1234,5678.89$”样式的字符串转化为数字,可根据要转化的字符串创建一个DecimalFormat对象,并将适合该字符串的格式化模式传递给该对象:DecimalFormatdf=newDecimalFormat(“###,#00.000$”);调用parse方法可反回一个Number对象:Numbernum=df.parse(“3,521,563.345$”);最后用Number对象调用可以返回该对象中数字的方法:doubled=nuber.doubleValue(); 9.8Pattern类与Match类•模式匹配就是检索和指定模式匹配的字符串。java提供了专门用来进行模式匹配的Pattern类和Match类,这些类在java.util.regex包中。 9.8.1模式对象•进行模式匹配的第一步就是使用Pattern类创建一个对象,称作模式对象,模式对象是对正则表达式的封装。Pattern类调用类方法complie(Stringregex)返回一个模式对象,其中的参数regex是一个正则 表达式,称作模式对象使用的模式:•Patternp=Pattern.complie(“hello\d”);•如果参数regex指定的正则表达式有错,complie方法将抛出异常:PatternSyntaxException 9.8.2匹配对象  模式对象P调用matcher(CharSequenceinput)方法返回一个Matcher对象m,称作匹配对象,参数input可能是任何一个实现了CharSequence接口的类创建的对象,如果String和StringBuffer都实现了CharSequence方法 Matcher对象m的常用方法•publicbooleanfind():寻找input和regex匹配的下一子序列,如果成功该方法返回true,否则返回false。•publicbooleanmatches():判断是否完全和regex匹配。•publicbooleanlookingAt():判断从input的开始位置是否有和regex匹配的子序列。 9.9Scanner类Scanner类也可用于从字符串中解析程序所需要的数据。 1.使用默认分隔标记解析字符串•创建Scanner对象,并将解析的字符串传递给所构造的对象:•StringNBA=“ILoveThisGame”;•为了解析出NBA中的单词,可以构造一个Scanner对象:•Scannerscanner=newScanner(NBA);•这时scanner将空白作为分隔标记,调用next()方法依次返回NBA中的单词,如果NBA中的单词全部被next()方法返回,则scanner.hasNext()返回false,否则为true。   对于数字型的单词,可以用nextInt()或nextDouble()方法来代替next()方法,如果单词不是数字型单词,调用nextInt()或nextDouble()方法将发生inputMismatchException异常, 2.使用正则表达式作为分隔标记解析字符串Scanner对象可以调用useDelimiter()方法将一个正则表达式作为分隔标记,即和正则表达式匹配的字符串都是分隔标记。 9.10System类System类的exit()方法可以让一个Java程序立刻关闭当前运行的程序。并向该方法传递数字0或非0参数。0表示正常关闭虚拟机,否则表示非正常关闭虚拟机。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭