




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第12章Java常用类,讲师:宋红康新浪微博:尚硅谷-宋红康,JavaSE知识图解,JAVA发展历程,JAVA环境搭建,基础程序设计,数据类型,流程控制,运算符,数组,面向对象编程,类和对象,属性,方法,设计模式,接口,三大特性,应用程序开发,JDBC,集合,异常处理,类库,多线程,IO,反射,网络,连接Oracle,JAVA新特性,Eclipse使用,泛型,枚举,装箱/拆箱,可变参数,Annotation,主要内容,String类StringBuffer类StringBuilder类System类Date类SimpleDateFormat类Calendar类Math类BigInteger类与BigDecimal类,一、字符串相关类,String类:构造字符串对象常量对象:字符串常量对象是用双引号括起的字符序列。例如:你好、12.97、boy等。字符串的字符使用Unicode字符编码,一个字符占两个字节String类较常用构造方法:Strings1=newString();Strings2=newString(Stringoriginal);Strings3=newString(chara);Strings4=newString(chara,intstartIndex,intcount)Stringstr=“abc”;与Stringstr1=newString(“abc”);的区别?,Stringstr1=JavaEE;Stringstr2=JavaEE;Stringstr3=newString(JavaEE);,栈,堆,字符串常量池,str1:0 x1234,JavaEE,0 x1234,str2:0 x1234,str3:0 x1222,0 x1222,0 x1234,字符串的特性,String是一个final类,代表不可变的字符序列字符串是不可变的。一个字符串对象一旦被配置,其内容是不可变的。,判断:Strings1=atguigu;Strings2=java;Strings4=java;Strings3=newString(java);System.out.println(s2=s3);System.out.println(s2=s4);System.out.println(s2.equals(s3);,Strings5=atguigujava;Strings6=(s1+s2).intern();System.out.println(s5=s6);System.out.println(s5.equals(s6);,Stringstr1=JavaEE;str1=str1+Android;System.out.println(str1);,栈,字符串常量池,str1:,JavaEE,JavaEEAndroid,栈,堆空间,字符串常量池,Stringstr1=atguigu;Stringstr2=atguigu;Stringstr3=newString(atguigu);,str1:0 x1234,atguigu,str2:0 x1234,str3:0 x2233,0 x1234,0 x2233,Stringstr4=atguigu;str4=str4+java;,str4:0 x2234,atguigujava,Stringstr1=javaEE;str1=javaEEAndroid;StringBuffersb=newStringBuffer(javaEE);sb.append(android);System.out.println(sb);,栈,堆,字符串常量池,str1:,javaEE,javaEEAndroid,sb:,javaEEandroid,栈,堆,方法区,常量池,str1:,javaEE,str2:,Stringstr1=javaEE;Stringstr2=javaEE;Stringstr3=newString(javaEE);Stringstr4=javaEEandroid;Stringstr5=javaEE+android;str1=“javaEEandroid”,str3:,newString(javaEE);,str4:,javaEEandroid,str5:,栈,堆,方法区,S2:0 x1234,S3:0 x2345,java,S4:0 x1234,Strings2=“java;Strings4=“java;Strings3=newString(“java);s4=“javaandroid”;,java,0 x1234,javaandroid,字符串对象操作,publicintlength()publiccharcharAt(intindex)publicbooleanequals(ObjectanObject)publicintcompareTo(StringanotherString)publicintindexOf(Strings)publicintindexOf(Strings,intstartpoint)publicintlastIndexOf(Strings)publicintlastIndexOf(Strings,intstartpoint)publicbooleanstartsWith(Stringprefix)publicbooleanendsWith(Stringsuffix)publicbooleanregionMatches(intfirstStart,Stringother,intotherStart,intlength),字符串对象修改,publicStringsubstring(intstartpoint)publicStringsubstring(intstart,intend)pubicStringreplace(charoldChar,charnewChar)publicStringreplaceAll(Stringold,Stringnew)publicStringtrim()publicStringconcat(Stringstr)publicStringsplit(Stringregex)根据给定正则表达式的匹配拆分此字符串。,publicstaticvoidmain(Stringargs)StringfakeFileData=justint64/5/26t0939002302t5433343,momort68/7/23t0939100391t5432343;for(Stringdata:fakeFileData)Stringtokens=data.split(t);/t为字符串的分割符号。for(Stringtoken:tokens)System.out.print(token+t|);System.out.println();,字符串与基本数据的相互转化,字符串转换为基本数据类型Integer包装类的publicstaticintparseInt(Strings):可以将由“数字”字符组成的字符串转换为整型。类似地,使用java.lang包中的Byte、Short、Long、Float、Double类调相应的类方法可以将由“数字”字符组成的字符串,转化为相应的基本数据类型。基本数据类型转换为字符串调用String类的publicStringvalueOf(intn)可将int型转换为字符串相应的valueOf(byteb)、valueOf(longl)、valueOf(floatf)、valueOf(doubled)、valueOf(booleanb)可由参数的相应类到字符串的转换,字符串与字符、字节数组(1),字符串与字符数组String类的构造方法:String(char)和String(char,intoffset,intlength)分别用字符数组中的全部字符和部分字符创建字符串对象String类提供了将字符串存放到数组中的方法:publicvoidgetChars(intsrcBegin,intsrcEnd,chardst,intdstBegin)将字符串中的全部字符存放在一个字符数组中的方法:publicchartoCharArray(),字符串与字符、字节数组(2),字符串与字节数组String(byte)用指定的字节数组构造一个字符串对象。String(byte,intoffset,intlength)用指定的字节数组的一部分,即从数组起始位置offset开始取length个字节构造一个字符串对象。publicbytegetBytes()方法使用平台默认的字符编码,将当前字符串转化为一个字节数组。publicbytegetBytes(StringcharsetName)使用参数指定字符编码,将当前字符串转化为一个字节数组。,练习,模拟一个trim方法,去除字符串两端的空格。将一个字符串进行反转。将字符串中指定部分进行反转。比如将“abcdefg”反转为”abfedcg”获取一个字符串在另一个字符串中出现的次数。比如:获取“ab”在“abkkcadkabkebfkabkskab”中出现的次数,练习,4.获取两个字符串中最大相同子串。比如:str1=abcwerthelloyuiodef“;str2=cvhellobnm提示:将短的那个串进行长度依次递减的子串与较长的串比较。5.对字符串中字符进行自然顺序排序。提示:1)字符串变成字符数组。2)对数组排序,选择,冒泡,Arrays.sort();3)将排序后的数组变成字符串。,publicstaticStringMyTrim(Stringstr)intstart=0;intend=str.length()-1;while(startend,/实现字符串指定“区间”的字符之间的反序。且指定的start和end都是包含在此区间的。publicStringreverseString(Stringstr,intstart,intend)charc=str.toCharArray();returnreverseChar(c,start,end);/实现了字符数组中指定区间字符间的反序。且指定的start和end都是包含在此区间的。publicStringreverseChar(charc,intstart,intend)for(intx=start,y=end;xstr2.length()?str1:str2;Stringmin=(str1.length()str2.length()?str1:str2;for(intx=0;xmin.length();x+)for(inty=0,z=min.length()-x;z=min.length();y+,z+)Stringstr=min.substring(y,z);if(max.contains(str)returnstr;returnnull;,StringBuffer类,java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删。很多方法与String相同,但StingBuffer是可变长度的。StringBuffer是一个容器。,StringBuffer类,StringBuffer类有三个构造方法:1StringBuffer()初始容量为16的字符串缓冲区2StringBuffer(intsize)构造指定容量的字符串缓冲区3StringBuffer(Stringstr)将内容初始化为指定字符串内容,StringBuffer类,Strings=newString(我喜欢学习);StringBufferbuffer=newStringBuffer(“我喜欢学习”);buffer.append(数学);,s1,Strings1=“atguigu”;s1=“atguigujava”;StringBuffersb=newStringBuffer(“atguigu”);sb.append(“java”);,sb,atguigu,atguigujava,atguigujava,StringBuffer类的常用方法,StringBufferappend(Strings),StringBufferappend(intn),StringBufferappend(Objecto),StringBufferappend(charn),StringBufferappend(longn),StringBufferappend(booleann),StringBufferinsert(intindex,Stringstr)publicStringBufferreverse()StringBufferdelete(intstartIndex,intendIndex)publiccharcharAt(intn)publicvoidsetCharAt(intn,charch)StringBufferreplace(intstartIndex,intendIndex,Stringstr)publicintindexOf(Stringstr)publicStringsubstring(intstart,intend)publicintlength(),StringBuilder和StringBuffer非常类似,均代表可变的字符序列,而且方法也一样String:不可变字符序列StringBuffer:可变字符序列、效率低、线程安全StringBuilder(JDK1.5):可变字符序列、效率高、线程不安全String使用陷阱:strings=a;/创建了一个字符串s=s+b;/实际上原来的a字符串对象已经丢弃了,现在又产生了一个字符串s+b(也就是ab)。如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率。如果这样的操作放到循环中,会极大影响程序的性能。,StringBuilder类,Stringtext=;longstartTime=0L;longendTime=0L;StringBufferbuffer=newStringBuffer();StringBuilderbuilder=newStringBuilder();startTime=System.currentTimeMillis();for(inti=0;i20000;i+)buffer.append(String.valueOf(i);endTime=System.currentTimeMillis();System.out.println(StringBuffer的执行时间:+(endTime-startTime);startTime=System.currentTimeMillis();for(inti=0;i弧度,四、BigInteger类,Integer类作为int的包装类,能存储的最大整型值为2311,BigInteger类的数字范围较Integer类的数字范围要大得多,可以支持任意精度的整数。构造器BigInteger(Stringval)常用方法publicBigIntegerabs()publicBigIntegeradd(BigIntegerval)publicBigIntegersubtract(BigIntegerval)publicBigIntegermultiply(BigIntegerval)publicBigIntegerdivide(BigIntegerval)publicBigIntegerremainder(BigIntegerval)publicBigIntegerpow(intexponent)publicBigI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版地铁隧道电气安装规范及安全协议
- 二零二五年度房地产交易风险评估中介服务费合同
- 2025版大型设备安装与维护合作协议范本下载
- 2025版绿色生态园区建设项目内部承包协议
- 2025承包建筑工程承包合同-智慧城市综合体建设
- 2025版城市地下停车场施工承包合同
- 2025版智能网联汽车一半股权转让与技术支持合同
- 二零二五年服装店品牌营销顾问聘用合同样本
- 2025版老年旅游合同范本贴心关怀服务保障
- 2025版建筑安装施工合同交底书范本
- 销售入职培训大纲
- 【《汽车前轴结构优化及轻量化性能研究(论文)》13000字】
- 铝锭加工协议合同
- 西安经开第一学校新初一分班英语试卷含答案
- 酒店建筑装饰行业深度调研及发展战略咨询报告
- 燃气轮机余热回收技术-深度研究
- 2025年健身教练专业试卷-健身教练职业资格认证考试复习指南
- 家政就业安置合同范本7篇
- 老龄化背景下的长期照护需求-深度研究
- 《认识创业投资》课件
- 2025年全国幼儿园教师资格证考试教育理论知识押题试题库及答案(共九套)
评论
0/150
提交评论