版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章
几种常用类2015-10-276.1
String和StringBuffer6.1.1String类
字符串常量String类的构造器构造器:1.publicString(String):例:Strings=newString(“Hello”);也可写为:Strings=“Hello”;Strings=“Hello”;JVM首先查找对象池中是否存放有该String对象”Hello”,如果有,则返回已有的String对象地址;如果对象池中没有该String对象,JVM则在堆中创建新的String对象,将其引用返回,同时将该引用添加至对象池中。String类的构造器构造器:2.publicString(char[])或publicString(char[],int,int)例:charc[]={'H','e','l','l','o'};Strings1=newString(c);Strings2=newString(c,1,2);System.out.println(s1);System.out.println(s2)String类的构造器构造器:3.publicString(byte[])publicString(byte[],int,int)例:byteb[]={65,66,67,68,69};//或写为byteb[]={‘A',‘B',‘C',‘D',‘E'};Strings1=newString(b);Strings2=newString(b,1,2);System.out.println(s1);System.out.println(s2);【补充】将字符串转化为字符数组Strings="abc";byteb[]=s.getBytes();charc[]=newchar[b.length];for(inti=0;i<b.length;i++)c[i]=(char)b[i];//将字节转化为字符for(inti=0;i<c.length;i++)System.out.println(c[i]);【补充】将字符串转化为字符数组Stringstr=JOptionPane.showInputDialog(“请输入字符串1");Stringstr1=JOptionPane.showInputDialog(“请输入字符串2");charc1[]=newchar[str.length()];charc2[]=newchar[str1.length()];c1=str.toCharArray();c2=str1.toCharArray();【补充】查看操作系统默认编码publicclassecho{
publicstaticvoidmain(String[]args){
Stringencoding=
System.getProperty("file.encoding");
System.out.println("DefaultSystemEncoding:"
+encoding);
}}【补充】包含汉字的字符串Strings="你好";byteb[]=s.getBytes();for(inti=0;i<b.length;i++)System.out.println(b[i]);Strings1=newString(b);System.out.println(s1);String类的方法length()得到字符串的长度charAt(int)返回指定索引处的字符例:Strings="hello";charc=s.charAt(0);System.out.println(c);System.out.println(s.length());字符串比较equals(Object):比较字符值是否相等==:比较两个字符串对象是否引用同一个对象【例1】Strings1=newString("hello");Strings2=newString("hello");if(s1.equals(s2))System.out.println("yes");elseSystem.out.println("no");字符串比较【例2】
Strings1=newString("hello");Strings2=newString("hello");if(s1==s2)System.out.println("yes");elseSystem.out.println("no");字符串比较【例3】Strings1=newString("hello");Strings2=s1;if(s1==s2)
System.out.println("yes");else
System.out.println("no");字符串比较【例4】Strings1="hello";Strings2="hello";if(s1.equals(s2))System.out.println("yes");elseSystem.out.println("no");字符串比较【例5】Strings1="hello";Strings2="hello";if(s1==s2)
System.out.println("yes");elseSystem.out.println("no");String类的常用方法
【上机练习】编写例子测试每个方法(1)getChars(intsrcBegin,intsrcEnd,char[]dst,intdstBegin)将字符从此字符串复制到目标字符数组。(2)compareTo(StringanotherString)按字典顺序比较两个字符串。intcompareToIgnoreCase(Stringstr)按字典顺序比较两个字符串,不考虑大小写。String类的常用方法
【上机练习】编写例子测试每个方法(3)indexOf(intch)返回指定字符在此字符串中第一次出现处的索引。indexOf(intch,intfromIndex)返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。indexOf(Stringstr)返回指定子字符串在此字符串中第一次出现处的索引。indexOf(Stringstr,intfromIndex)返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。String类的常用方法
【上机练习】编写例子测试每个方法(4)lastIndexOf(intch)返回指定字符在此字符串中最后一次出现处的索引。lastIndexOf(intch,intfromIndex)返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。lastIndexOf(Stringstr)返回指定子字符串在此字符串中最右边出现处的索引。lastIndexOf(Stringstr,intfromIndex)返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。String类的常用方法
【上机练习】编写例子测试每个方法(5)substring(intbeginIndex)返回一个新的字符串,它是此字符串的一个子字符串。substring(intbeginIndex,intendIndex)返回一个新字符串,它是此字符串的一个子字符串。(6)concat(Stringstr)将指定字符串连接到此字符串的结尾。String类:字符串常量例:将给定字符串的每个单词取出来。Strings1=newString("howareyou");for(inti=0;i<s1.length();i++)if(s1.charAt(i)=='')System.out.print('\n');elseSystem.out.print(s1.charAt(i));String类:字符串常量作业1.将一个字符串反转后输出。(利用charAt()方法)2.查找一个字符串中某个子串出现的次数。6.1.2StringBuffer类
字符串变量构造器publicStringBuffer()——建立一个大小为16的缓冲区publicStringBuffer(int)——建立一个指定大小的缓冲区publicStringBuffer(String)——创建一个缓冲区,其中存放的字符为参数字符串例:StringBuffers1=newStringBuffer("hello");不能写为StringBuffers1=“hello”;//为什么?
字符串缓冲区添加各种数据StringBufferappend(String)StringBufferappend(boolean)StringBufferappend(char)StringBufferappend(char[])StringBufferappend(char[],int,int)StringBufferappend(double)StringBufferappend(float)StringBufferappend(int)StringBufferappend(long)StringBufferappend(Object)【补充】classtest{publicstaticvoidmain(Stringargs[]){StringBuffers1=newStringBuffer("how");System.out.println(s1.append("are"));System.out.println(s1.append('c'));charc[]={'y','o','u'};System.out.println(s1.append(c));System.out.println(s1.append(1.1));System.out.println(s1.append(3));testt1=newtest();System.out.println(s1.append(t1));}}insert方法insert(int
offset,String
str)——将字符串插入此字符序列中insert(int
offset,char
c)——将char参数的字符串表示形式插入此序列中【例6-1】publicclassstrb1{publicstaticvoidmain(Stringargs[]){StringBufferstrb1=newStringBuffer();strb1.append("这是一本书。");System.out.println(strb1.toString());strb1.insert(3,"Java");strb1.append(32.5f);System.out.println(strb1.toString());System.out.println("Itslengthis"+strb1.length());}}运行结果:这是一本书。这是一Java本书。32.5Itslengthis14reverse():将字符串翻转【补充】StringBuffers1=newStringBuffer("howareyou");s1.reverse();System.out.println(s1);String类与StringBuffer类的比较相同点:两个类都是进行字符串处理的,并且字符在字符串中的位置都是从0开始的。则两个类还有相同的方法,如length()等。不同点:String类代表的是字符串常量,即它的对象都是不可以编辑的,不能对它的对象做任何改动,而只能利用它建立其它字符串。StringBuffer类代表的是字符串变量,它的对象是可以编辑的。StringTokenizer类例:将给定字符串的每个单词取出来。importjava.util.*;classtest{publicstaticvoidmain(Stringargs[]){StringTokenizers1=newStringTokenizer("howareyou");System.out.println(s1.countTokens());while(s1.hasMoreTokens())System.out.println(s1.nextToken());}}以空白字符、制表符、换行符、回车符和换页符作为分隔符,也可以在创建StringTokenizer对象时指定分隔符。6.2基本数据类型类封装类(Wrapper类)构造器通过将值传递给相应的构造器,可以构建Wrapper类对象例如:intpInt=500;IntegerwInt=newInteger(pInt);intp2=wIValue();常用方法当转换基本数据类型时Wrapper类很有用,因为可以使用很多Wrapper类方法(查API)。例如:Stringstr=“365”;intx=Integer.parseInt(str);或
intx=Integer.valueOf(str).intValue();6.3Java集合框架
JCF(JavaCollectionsFramework)JCF简图集合类:java.util包中Collection提供关于集合的一些通用操作的接口,包括插入add()删除remove()判断一个元素是不是其成员contains()遍历iterator()List——有序集合Set——无序集合,不允许存在重复值Map——映射ArrayList——List接口的一个实现
有序,允许存在重复值importjava.util.*;classA{publicstaticvoidmain(Stringargs[]){List<String>s=newArrayList<String>();//定义时加上泛型参数s.add("aaa");s.add("bbb");s.add(“ccc”);//增加元素System.out.println(s);s.remove(2);//删除元素System.out.println(s);System.out.println(s.get(0));for(inti=0;i<s.size();i++)//遍历System.out.println(s.get(i));}}HashSet——Set接口的一个实现
无序,不允许存在重复值importjava.util.*;classA{publicstaticvoidmain(Stringargs[]){Set<String>s=newHashSet<String>();s.add("aaa");s.add("bbb");s.add("aaa");System.out.println(s);}}HashMap——Map接口的一个实现importjava.util.*;classA{publicstaticvoidmain(Stringargs[]){Map<String,String>s=newHashMap<String,String>();s.put("aaa","threea");s.put("bbb","threeb");s.put("ccc","threec");Strings1=s.get("aaa");System.out.println(s1);}}Iterator接口【例1】List<String>s=newArrayList<String>();s.add("aaa");s.add("bbb");s.add("ccc");Iteratort=s.iterator();while(t.hasNext())System.out.println(t.next());【例2】Set<String>s=newHashSet<String>();s.add("aaa");s.add("bbb");s.add("aaa");Iteratort=s.iterator();while(t.hasNext())System.out.println(t.next());java.util.Arrays类对数组排序importjava.util.*;classtest{publicstaticvoidmain(Stri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《旅游产品设计》课件
- 2020-2021学年辽宁省部分重点高中高一下学期期中考试地理试题 (解析版)
- 历史-山东省淄博市2024-2025学年第一学期高三期末摸底质量检测试题和答案
- 小学五年级数学小数乘除法竖式计算练习题
- 《输血实践与临床》课件
- 黑龙江省大庆市2025届高三年级第二次教学质量检测化学
- 届语文试题每日精练
- 《多媒体技术应用》课件
- 咨询行业信息泄露防范技巧
- 剧院票务销售员工作总结
- 2025北京丰台初二(上)期末数学真题试卷(含答案解析)
- 工行个人小额贷款合同样本
- 江西省萍乡市2023-2024学年高一上学期期末考试数学试题(解析版)
- Unit 5 Here and now Section B project 说课稿 2024-2025学年人教版(2024)七年级英语下册标签标题
- 2024-2025学年上学期深圳初中地理七年级期末模拟卷1
- 2025届西藏自治区拉萨市北京实验中学高考数学五模试卷含解析
- 2025年中国科学技术大学自主招生个人陈述自荐信范文
- 学校2025元旦假期安全教育宣传课件
- 咨询总监述职报告
- 2024年版母公司控股协议2篇
- GB/T 44757-2024钛及钛合金阳极氧化膜
评论
0/150
提交评论