JAVA编程高级-08工具类_第1页
JAVA编程高级-08工具类_第2页
JAVA编程高级-08工具类_第3页
JAVA编程高级-08工具类_第4页
JAVA编程高级-08工具类_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机科学与技术系颜德彪Java程序设计目标:Object类及相关工具类的介绍。通过本课的学习,学员应该掌握如下知识:1)理解包装类的功用。2)掌握String类中的常用方法。3)理解StringBuffer和StringBuilder类中的常用方法;理解String、StringBuffer、StringBuilder类的区别。4)了解Math类的使用5)了解日期类的使用工具类时间:2学时教学方法:PPT讲解

示例练习本章要点JavaAPI理解API的概念Object类包装类String类与StringBuffer类String类的常用方法StringBuffer类的常用方法StringBuilder类的常用方法String与StringBuffer的区别StringBuffer与StringBuilder的区别Math类日期类型JavaAPI1Object类2包装类3字符串类4Math类5日期类型6ContentsJAVAAPI简介API的概念API(ApplicationProgrammingInterface)应用程序接口Java中的API,就是JDK提供的各种功能的Java类JDK帮助文档JAVA_API_CN.chmJAVAAPI简介JDK中常用的包java.langJava语言包(包含String、Math、System等类),任何类中,该包中的类都会被自动导入。java.util包含一些实用的工具类(包含list,calendar,date等类)java.awt图形用户界面包。java.io提供多种输入/输出功能的类。JavaAPI1Object类2包装类3字符串类4Math类5日期类型6ContentsObject介绍及方法Object类Object类是所有类的超类,Object是Java语言中唯一一个没有父类的类。一个类可以不是Object类的直接子类,但一定是Object类的子类,Java中的每一个类都是从Object扩展来的。在Object类中定义的方法,在所有类中都可以使用。Object类常用方法

示例:ObjectSample.javapublicbooleanequals(Object

obj)比较两个对象引用的值是否相等(比较哈希地址)publicinthashCode()返回十进制整数,唯一标识一个对象publicStringtoString()返回类名@hashcodeJavaAPI1Object类2包装类3字符串类4Math类5日期类型6Contents包装类简介包装类基本数据类型不是对象层次结构的组成部分。有时需要像处理对象一样处理这些基本数据类型,可通过相应的“包装类”来将其“包装”。数据类型封装类booleanBooleanbyteBytecharCharacterdoubleDoublefloatFloatintIntegerlongLongshortShort基本数据类型转换为包装类基本数据类型通过构造器转换为包装类intpInt=500;IntegerwInt=newInteger(pInt);示例:TestWrapper.java字符串转换为包装类字符串通过构造方法转换为包装类字符串通过包装类的valueOf(Strings)转换为包装类StringsInt=“500”;IntegerwInt=newInteger(sInt);StringsInt=“500”;IntegerwInt=Integer.valueOf(sInt);

注意:字符串不能通过以上两种方式转换为Character示例:TestWrapper.java包装类转换为基本数据类型包装类通过xxxValue()方法转换为基本数据类型

IntegerwInt=newInteger(500);intpInt=wIValue();示例:TestWrapper.java包装类转换为字符串包装类通过toString()方法转换为字符串IntegerwInt=newInteger(500);StringsInt=wInt.toString();示例:TestWrapper.java字符串转换为基本数据类型字符串通过parseXXX(Strings)方法转换为基本数据类型StringsInt=“500”;intpInt=Integer.parsetIInt(sInt);示例:TestWrapper.java自动装箱和自动拆箱自动的装箱和自动拆箱示例:TestWrapper.java

在进行基本数据类型和对应的包装类转换时,系统将自动进行JDK自从5.0版本后引入方便程序的编写intpInt=500;IntegerwInt=pInt;intn=wInt;JavaAPI1Object类2包装类3字符串类4Math类5日期类型6ContentsString类String类代表一组不可改变的unicode字符序列。String类用于比较两字符串、查找和抽取串中的字符或子串、字符串与其他类型之间的转换等。String类对象的内容一旦被初始化就不能再改变。String类String对象的创建String类的构造方法初始化一个新创建的String对象,它表示一个空字符序列。

初始化一个新创建的String对象,表示一个与该参数相同的字符序列分配一个新的字符串,它包含当前包含在字符串缓冲区参数中的字符序列。字符串文字常量本身是一个String对象String

变量名=newString();

String

变量名=newString(String

value);

String

变量名=newString(StringBufferbuf);

String

变量名=“hello”;String类“+”字符串连接运算符连接操作符“+”,可以将其它各种类型的数据转换成字符串,并前后连接成新的字符串☻练习Stringstr1=“hello”;Stringstr2=“world”;Stringstr=str1+str2;//str为“helloworld”System.out.println(5+6+’A’);System.out.println(5+6+”A”);System.out.println(5+”A”+6);7611A5A6String类String类的性质示例

StringDemo.java任何一个String对象在创建之后都不能对它的内容作出任何改变(immutable)连接、获得子串和改变大小写等操作,如果返回值同原字符串不同,实际上是产生了一个新的String对象在程序的任何地方,相同的字符串字面常量都是同一个对象String类重置了equals方法,用于比较两个字符串的内容Stringstr1=“hello”;Stringstr2=newString(“hello”);System.out.println(str1==str2);System.out.println(str1.equals(str2));String类String类的常用方法方法含义booleanequals(String)判断两个字符串对象的内容是否相等booleanequalsIgnoreCase(String)比较两个字符串的内容是否相等,忽略大小写StringtoUpperCase()将String对象中的所有字符都转换为大写StringtoLowerCase()将String对象中的所有字符都转换为小写charcharAt(int)返回指定索引处的char值StringsubString(intbegin)返回一个新字符串,该字符串是从begin开始的字符串的内容StringsubString(intbegin,intend)返回一个新字符串,该字符串是从begin开始到end结束的字符串的内容String类String类的常用方法方法含义intindexOf/lastIndexOf(char)返回指定字符在此字符串中第一次/最后一次出现处的索引。intindexOf/lastIndexOf(char,int)从指定的索引开始搜索,返回在此字符串中第一次/最后一次出现指定字符处的索引intindexOf/lastIndexOf(String)返回第一次出现的指定子字符串在此字符串中的索引intindexOf/lastIndexOf(String,int)从指定的索引开始搜索,返回在此字符串中第一次/最后一次出现指定字符串处的索引Stringtrim()返回新的字符串,忽略前导空白和尾部空白intlength()返回此字符串的长度String类Stringstr=xxx;if(str!=null&&str.length()!=0){}

练习我们通过用户名和密码来登陆系统的时候,需要对用户身份的合法性做判断。在判断之前,我们需要先验证用户输入的信息是否为空,如何验证呢?反过来可以吗?在判断字符串为空的时候,我们要先判断是不是对象,再判断是不是空字符串!!String方法练习String字符串格式化String.format()第一参数叫格式表达式,在格式化表达式中可以使用多个”%”,如:Strings=String.format(“Youpayme%,.2f,andIshouldpayyou%,d”,1236.234,5000);其中“%”表示要格式化的数字

,d:以十进制整数带逗号的方式来表示;

.2f:以小数点后两位的方式来格式化此浮点数;

,.2f:代表整数部分以逗号的形式表示,小数部分以两位来格式化;

Strings=String.format(“%,d”,1000000);System.out.println(s);//1,000,000String方法练习String字符串格式化String.format()System.out.print()一般标准输出,不换行System.out.println()一般标准输出,最后会换行System.out.printf()格式化输出,参考String.format()

Stringname="cary";intage=18;System.out.printf("Hello,mynameis%s,myageis%d.",name,age);String方法练习String字符串分割String.split()该方法返回一个字符串数组

regex:定界正则表达式limit:limit控制模式应用的次数,因此影响所得数组的长度。同上,limit为0的情况,所得数组中不包括末尾空字符。☻

练习

String_split.javaStringss="abc:def:xyz";

String[]chars=ss.split(":");System.out.println(Arrays.toString(chars));publicString[]split(Stringregex,intlimit)publicString[]split(Stringregex)[abc,def,xyz]String方法练习String字符串匹配正则表达式

Patternpattern=Ppile("b*g");Matchermatcher=pattern.matcher("bbg");System.out.println(matcher.matches());System.out.println(Pattern.matches("b*g","bbg"));//验证邮政编码System.out.println(Pattern.matches("[0-9]{6}","200038"));System.out.println(Pattern.matches("//d{6}","200038"));//验证电话号码System.out.println(Pattern.matches("[0-9]{3,4}//-?[0-9]+","02178989799"));Java正则表达式总结/luosijin123/article/details/4792181StringBuffer类StringBuffer类StringBuffer类用于内容可以改变的字符串可以使用StringBuffer来对字符串的内容进行动态操作,不会产生额外的对象

StringBuffer类StringBuffer对象的创建构造一个其中不带字符的字符串缓冲区,其初始容量为16个字符构造一个不带字符,但具有指定初始容量的字符串缓冲区。构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。StringBuffer

变量名=newStringBuffer();

StringBuffer

变量名=newStringBuffer(intcapacity

);

StringBuffer

变量名=newStringBuffer(Stringvalue);示例:TestStr.javaStringBuffer类方法含义intcapacity()返回当前容量intlength()返回长度(字符数)StringBufferreverse()将此字符序列用其反转形式取代voidsetCharAt(int,char)将给定索引处的字符设置为chvoiddelete(intbegin,intend)移除此序列的子字符串中的字符charcharAt(int)返回此序列中指定索引处的char值StringtoString()将StringBuffer对象转换成相应的StringStringBuffer类的常用方法示例StringBuf.java

StringBuffer类StringBuffer类的常用方法方法含义StringBufferappend(Stringstr)将指定的字符串追加到此字符序列StringBufferappend(intnum)将int参数的字符串表示形式追加到此序列StringBufferappend(Objecto)追加Object参数的字符串表示形式StringBufferinsert(intindex,Stringstr)将字符串插入此字符序列中StringBufferinsert(intindex,charch)将字符插入此字符序列中StringBufferinsert(intindex,Objecto)将Object参数的字符串表示形式插入此字符序列中StringBuilder类StringBuilder类StringBuilder类是一个可变的字符序列。JDK自从5.0版本后引入。StringBuilder类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候。StringBuilder类StringBuilder对象的创建构造一个不带任何字符的字符串生成器,其初始容量为16个字符。构造一个不带任何字符的字符串生成器,其初始容量由capacity参数指定。构造一个字符串生成器,并初始化为指定的字符串内容

StringBuilder

变量名=newStringBuilder();

StringBuilder

变量名=newStringBuilder(intcapacity

);

StringBuilder

变量名=newStringBuilder(Stringstr);示例:TestStringBuilder.javaStringBuilder类StringBuilder类的常用方法示例

TestStringBuilder.java方法含义intcapacity()返回当前容量intlength()返回长度(字符数)StringBuilderreverse()将此字符序列用其反转形式取代voidsetCharAt(intindex,charch)将给定索引index处的字符设置为chvoiddelete(intbegin,intend)移除此序列的子字符串中的字符charcharAt(intindex)返回此序列中指定索引处的char值StringtoString()将StringBuilder对象转换成相应的StringStringBuilder类方法含义StringBuilderappend(Stringstr)将指定的字符串追加到此字符序列StringBuilderappend(intnum)将int参数的字符串表示形式追加到此序列StringBuilderappend(Objecto)追加Object参数的字符串表示形式StringBuilderinsert(intindex,Stringstr)将字符串插入此字符序列中StringBuilderinsert(intindex,charch)将字符插入此字符序列中StringBuilderinsert(intindex,Objecto)将Object参数的字符串表示形式插入此字符序列中StringBuilder类的常用方法String类与StringBuffer类的比较StringBuffer类与StringBuilder类的异同Java中定义了String与StringBuffer两个类来封装对字符串的各种操作

String类与StringBuffer类都被放到了java.lang包中两者的主要区别在于String类对象中的内容初始化不可以改变StringBuffer类对象中的内容可以改变StringBuffer与StringBuilderStringBuffer类与StringBuilder类的异同StringBuffer和StringBuilder都是长度可变的字符串。两者的操作基本相同。两者的主要区别在于StringBuffer类是线程安全的;StringBuilder类是线程不安全的。StringBuffer在JDK1.0中就有,而StringBuilder是在JDK5.0后才出现的。StringBuilder的一些方法实现要比StringBuffer快些。综合练习1.编写一个程序,实现从命令行参数输入一字符串,统计该字符串中字符“e”出现的次数。2.有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。(在Java中,中文字符转换为整型数值的范围在[19968,40623)区间内)3.有一种数叫回文数,正读和反读都一样,如12321便是一个回文数。编写一个程序,从命令行得到一个整数,判断该数是不是回文数4.教材P98例5.28JavaAPI1Object类2包装类3字符串类4Math类5日期类型6ContentsMath类Math类Math类提供了大量用于数学运算的方法Math类是final类,因此不能从Math类继承Math类中的方法都是static方法,因此不必创建Math类的对象就可以直接使用该类的方法Math类中的常量publicstaticfinaldoublePIpublicstaticfinaldoubleEMath类Math类中的常用方法方法含义staticintabs(int)返回参数的绝对值,返回值类型与参数类型相同staticdoubleabs(double)返回参数的绝对值staticdoubleceil(double)返回大于所给参数的最小的整数值staticdoublefloor(double)返回不大于所给参数的最大的整数值staticintmax(inta,intb)返回两个int值中较大的一个staticdoublemax(double,double)返回两个double值中较大的一个staticintmin(inta,intb)返回两个int值中较小的一个staticdoublemin(double,double)返回两个double值中较小的一个Math类Math类中的常用方法方法含义staticdoublerandom()返回在0.0~1.0之间的随机的double值staticintround(double)返回同所给值最接近的整数,采用4舍5入法staticdoublesin/cos/tan(double)返回给定的弧度值对应的三角函数值staticdoublesqrt(double)返回所给值的平方根,若所给值为负数则返回NaNRandom类Random类Random类常用方法doublenextDouble()返回下一个伪随机数,在0.0和1.0之间均匀分布的double值intnextInt(intn)返回下一个伪随机数,在[0,n)之间的int值Random():创建一个新的随机数生成器。Random(longseed):使用单个long种子创建一个新的随机数生成器综合练习1.生成十个0~100之间的随机数,放到数组中,然后分别对数组进行冒泡排序和直接选择排序输出。JavaAPI1Object类2包装类3字符串类4Math类5日期类型6ContentsDate类Date类java.util.Date。Date类表示指定的时间信息,可以精确到毫秒。不支持国际化。该类的许多方法已过时。获取当前系统时间:示例:TestDate.java

newDate()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论