第7章 字符串

上传人:r****d 文档编号:252201028 上传时间:2024-11-13 格式:PPT 页数:33 大小:130.50KB
返回 下载 相关 举报
第7章 字符串_第1页
第1页 / 共33页
第7章 字符串_第2页
第2页 / 共33页
第7章 字符串_第3页
第3页 / 共33页
点击查看更多>>
资源描述
Object-oriented programming,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第七章 字符串,Java编程技术,辽宁工程技术大学软件学院,Java程序设计实践教程,第七章 字符串,第七章 字符串,String类,StringBuffer类,根底数据类型的包装类,String类,String是一个非可变类immutable。,简单说来,非可变类的实例是不能被修改的,每个实例中包含的信息都必须在该实例创立的时候就提供出来,并且在对象的整个生存周期内固定不变。,非可变类确实有着自身的优势:,状态单一,对象简单,便于维护。,该类对象对象本质上是线程平安的,不要求同步。,用户可以共享非可变对象,甚至可以共享它们的内部信息。,String类在java中被大量运用,甚至在class文件中都有其身影,因此将其设计为简单轻便的非可变类是比较适宜的。,String类,创立一个String对象,主要就有以下两种方式:,Stringstr1=newString(abc);,Stringstr2=abc;,虽然两个语句都是返回一个String对象的引用,但是JVM对两者的处理方式是不一样的。,例:Pool.java,字符串池String Pool,在JAVA虚拟机JVM中存在着一个字符串池,其中保存着很多String对象,并且可以被共享使用,因此它提高了效率。,由于String类是final的,它的值一经创立就不可改变,因此我们不用担忧String对象共享而带来程序的混乱。,字符串池由String类维护,我们可以调用intern()方法来访问字符串池。,String类,String类,JVM处理方式,第一种,JVM会马上在堆内存中创立一个String对象,然后将该对象的引用返回给用户。,第二种,JAVA虚拟机首先在字符串池中查找是否已经存在了值为“abc的这么一个对象,它的判断依据是String类equals(Object obj)方法的返回值。,如果有,那么不再创立新的对象,直接返回已存在对象的引用;,如果没有,那么先创立这个对象,然后把它参加到字符串池中,再将它的引用返回。,String类,类代表不可变的字符序列。,“xxxx为该类的一个对象。,String类的常见构造方法:,String(String original),创立一个String对象为original的拷贝。,String(char value),用一个字符数组创立一个String对象。,String(char value,int offset,int count),用一个字符数组从offset项开始的count个字符序列创立一个String对象。,public class Test,public static void main(String args),String s1=“hello;,String s2=“world;,String s3=“hello;,System.out.println(s1=s3);,s1=new String(“hello);,s2=new String(“hello);,System.out.println(s1=s2);,System.out.println(s1.equals(s2);,char c=s,u,n,j,a,v,a;,String s4=new String(c);,String s5=new String(c,4,4);,System.out.println(s4);,System.out.println(s5);,String类举例1,/true,/false,/true,/sun java,/java,String类常用方法1,public char charAt(int index),返回字符串中第index个字符,public int length(),返回字符串的长度,public int indexOf(String str),返回字符串中出现str的第一个位置,public int indexOf(String str,int fromIndex),返回字符串中从fromIndex开始出现str的第一个位置,public boolean equalsIgnoreCase(String another),比较字符串与another是否一样(忽略大小写),public String replace(char oldChar,char newChar),在字符串中用newChar字符替换oldChar字符,public class Test,public static void main(String args),String s1=“sun java,s2=“Sun Java;,System.out.println(s1.charAt(1);,System.out.println(s1.length();,System.out.println(s1.indexOf(“java);,System.out.println(s1.indexOf(“Java);,System.out.println(s1.equals(s2);,System.out.println(s1.equalsIgnoreCase(s2);,String s=“我是程序员,我在学java;,String sr=s.replace(我,你);,System.out.println(sr);,String类举例2,/u,/8,/4,/-1,/false,/true,/,你是程序员,你在学java,String类常用方法2,public boolean startsWith(String prefix),判断字符串是否以prefix字符串开头,public boolean endsWith(String suffix),判断字符串是否以prefix字符串结尾,public String toUpperCase(),返回一个字符串为该字符串的大写形式,public String toLowerCase(),返回一个字符串为该字符串的小写形式,public String substring(int beginIndex),返回该字符串从beginIndex开始到结尾的子字符串,public String substring(int beginIndex,int endIndex),返回该字符串从beginIndex开始到endIndex-1结尾的子串,public String trim(),返回将该字符串去掉开头和结尾空格后的字符串,String类举例3,public class Test,public static void main(String args),String s=“Welcome to Java World!;,String s1=“sun java ;,System.out.println(s.startsWith(“Welcome);,System.out.println(s.endsWith(“World);,String sL=s.toLowerCase();,String sU=s.toUpperCase();,System.out.println(sL);,System.out.println(sU);,String subS=s.substring(11);,System.out.println(subS);,subS=s.substring(11,12);,System.out.println(subS);,String st=s1.trim();,System.out.println(st);,/true,/welcome to java world!,/WELCOME TO JAVA WORLD!,/Java World!,/false,/sun java,/J,String类常用方法3,静态重载方法,public static String valueOf()可以将根本类型数据转换为字符串,例如:,public static String valueOf(double d),public static String valueOf(int i),方法public String split(String regex)可以将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组。,public class Test,public static void main(String args),int j=1234567;,String sNumber=String.valueOf(j);,System.out.println(“j是+sNumber.length()+“位数。);,String s=“Mary,F,1976;,String sp=s.split(“,);,for(int i=0;isp.length;i+),System.out.println(spi);,String类举例4,输出结果:,j,是,7,位数。,Mary,F,1976,compareTo()方法,形式:public int compareTo(String anotherString),返回值:,字符不同,返回第一个不同字符之间的差值Unicode码,this.charAt(k)-anotherString.charAt(k),字符相同长度不同,返回两个字符串的长度之差,this.length()-anotherString.length(),compareTo只有在方法equals(Object obj)返回true时才返回0。,String对象的比较,String s1=“abcdef;,String s2=“abcedfg;,s1 pareTo(s2);,String s1=“String;,String s2=“StringBuffer;,s1 pareTo(s2);,String s1=“hello;,String s2=“hello;,s1 pareTo(s2);,练习,1,、编写一个程序,输出一个字符串中的大写英文字母数,小写英文字母数以及非英文字母数。,2,、编写一个方法,输出一个字符串中指定字符串出现的次数。,StringBuffer类,代表可变的字符序列。,StringBuffer和String类似,但StringBuffer可以对其字符串进行改变。,StringBuffer类的常见构造方法:,StringBuffer(),创立一个不包含字符序列的空的StringBuffer对象。,StringBuffer(String str),创立一个StringBuffer对象,包含与String对象str相同的字符序列。,StringBuffer常用方法1,重载方法,public StringBuffer append(),可为该StringBuffer对象添加字符序列,,返回添加后的该StringBuffer对象引用,,例如:,public StringBuffer append(String str),public StringBuffer append(StringBuffer sbuf),public StringBuffer append(char str),public StringBuffer append(char str,int offset,int len),public StringBuffer append(double d),public StringBuffer append(Object obj),StringBuffer常用方法2,重载方法,public StringBuffer insert(),可以为该StringBuffer对象在指定位置插入字符序列,,返回修改后的该StringBuffer对象引用,,例如:,publ
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!