第6章字符串ppt课件.ppt
《第6章字符串ppt课件.ppt》由会员分享,可在线阅读,更多相关《第6章字符串ppt课件.ppt(66页珍藏版)》请在三一文库上搜索。
1、第6章 字符串,本章要点,掌握字符串的创建方式 掌握字符串的常用操作 掌握字符串的格式化 理解正则表达式 掌握常见正则表达式的定义 掌握StringBuilder类的用法,第6章 字符串,6.1 创建字符串 6.2 字符串操作 6.3 格式化字符串 6.4 正则表达式 6.5 可变字符串,主要内容,6.1 创建字符串,String类即字符串类型,并不是Java的基本数据类型,但可以像基本数据类型一样使用。 要创建字符串可以通过多种方式实现。 1) 可以通过为字符串变量赋值的方式来实例化字符串对象,注意:声明字符串变量必须经过初始化或赋值后才能使用,否则编译器会报出“变量未被初始化”错误。,6.
2、1 创建字符串,2) 在Java中用java.lang.String类的构造方法来创建字符串变量。常用的构造方法如下: String() 创建一个String类型的对象,其内容为空。 String(char a) 使用指定的字符数组创建字符串对象。 String(char a, int offset, int length) 使用指定的字符数组创建字符串对象,offset表示字符数组起始位置。length表示长度。,6.1 创建字符串,char a =g,o,o,d; String s=new String(a); String s=new String(“good“); char a =s,
3、t,u,d,e,n,t; String s=new String(a, 2, 4); String s=new String(“uden“);,6.1 创建字符串,3) 在Java中还可以通过调用String类的valueOf方法来实例化字符串对象。 例如: int x=100; String s = String.valueOf(x);,6.2.1 字符串连接 6.2.2 获取字符串信息 6.2.3 字符串比较 6.2.4 字符串替换 6.2.5 字符串分割 6.2.6 大小写转换 6.2.7 取出首末空格,6.2 字符串操作,6.2.1 字符串连接,字符串连接是字符串的基本操作之一,有两种
4、方式可以实现: “+” String类的concat()方法 为了简单起见通常使用“+”而不会调用方法。 concat()方法的语法如下。 public String concat(String str),6.2.1 字符串连接,【例6-1】分别使用“+”和concat()方法来连接字符串,并将结果输出。,String str1 = “Hello “ + “World!“; String str2 = “Hello “.concat(“World!“); System.out.println(“使用+连接字符串:“ + str1); System.out.println(“使用concat()
5、方法:“ + str2);,6.2.1 字符串连接,Java中一句相连的字符串不能分开在两行中写:,System.out.println(“I like Java”),System.out.println(“I like“+ “Java“);,6.2.1 字符串连接,字符串同其它数据类型连接,“Money”+1+2,“Money”+(1+2),“Money12”,“Money3”,6.2.2 获取字符串信息,使用String类中length( )方法,可以获得当前字符串中包含的Unicode代码单元个数。通常情况下,即包含的字符个数。 注意: 空格也算字符。 一个汉字的长度也只有1。 注意:区
6、分String类的length( )方法与数组的length属性。,1. 获取字符串长度,String name = “一颗椰子树“; System.out.println(“字符串:“ + name + “t长度为:“ + name.length();,1. 获取字符串长度,2. 获取指定字符的索引位置,String类的indexOf()和lastIndexOf()方法都可以获得给定的字符/字符串在目标字符串中的索引位置,如果未找到匹配的字符或字符串则会返回-1。 indexOf()方法返回第一个符合要求的索引值 public int indexOf(String str) lastInde
7、xOf() 返回最后一个符合要求索引值 public int lastIndexOf(String str),2. 获取指定字符的索引位置,String str = “We are students“ ; int index = str.indexOf(“a“); int lastindex=str.lastIndexOf(e); System.out.println(“a在“+str+“中的起始位置是:“ +index); System.out.println(“e在“+str+“中的最后位置是:“ +lastindex);,3. 获取指定索引位置的字符,String类的charAt()方法
8、可以获得指定索引位置的字符,该方法的语法如下。 public char charAt(int index) index:目标字符的索引,其值在0和字符串长度-1之间。,String str = “hello word“; char mychar = str.charAt(6);,取子串,通过String类的substring()方法可对字符串进行截取。 1) substring(int beginIndex) 该方法返回的是从指定的索引位置开始截取直到该字符串的结尾的子串。,String str = “Hello Word“; String substr = str.substring(3);
9、,取子串,2) substring(int beginIndex , int endIndex) 该方法返回的是从字符串某一索引位置开始截取至某一索引位置结束(不包括结束位置)的子串。,String str = “Hello Word“; String substr = str.substring(0,3);,注意: endIndex不要越界beginIndex,str.length(),6.2.3 字符串比较,String类的equals()方法可以用来比较两个字符串的内容是否完全相同 public boolean equals(Object anObject) equalsIgnoreCa
10、se()方法可以在忽略大小写的情况下比较两个字符串的内容是否相同public boolean equalsIgnoreCase(String anotherString),1. 比较全部内容,1. 比较全部内容,String s1 = new String(“abc“); String s2 = new String(“ABC“); boolean b = s1.equals(s2); boolean b2 = s1.equalsIgnoreCase(s2); System.out.println(s1 + “ equals “ + s2 + “ : “ + b); System.out.pr
11、intln(s1 + “ equalsIgnoreCase “ + s2 + “ :“ + b2);,Java的字符串池,String str1=“abc“; String str2=“abc“; String str3=new String(“abc“); System.out.println(str1=str2); System.out.println(str1=str3);,在进行字符串比较时,通过=比较对象时,比较的是两个对象使用的内存地址是否相同; 当使用equals()方法比较两个对象时,只要两个对象的内容相同,结果就为true,否则为false。,Java虚拟机为了提高字符串应用
12、效率,提供了字符串池来保存字符串常量, str1创建字符串常量“abc”,这时会先检测字符串池中是否包含该字符串,如果不包含,则创建字符串常量保存到字符串池中。 str2也赋值为字符串“abc”,这是由于字符串池中已经存在该字符串,所以不再创建,也就是说这两个变量引用同一个字符串,那么它们的内存地址也是相同的,所以str1=str2成立。 但是使用new关键字创建的字符串会新开辟内存空间所以str1=str3不成立。,Java的字符串池,2. 比较开头结尾,String类的startsWith()方法可以用来判断是否以给定字符串开头,语法如下。 public boolean startsWit
13、h(String prefix) prefix:字符串前缀 String类的endsWith()方法可以用来判断是否已给定字符串结尾,语法如下。 public boolean endsWith(String suffix) suffix:字符串后缀,2. 比较开头结尾,String num1 = “22045612“; boolean b = num1.startsWith(“22“); boolean b2 = num1.endsWith(“78“); System.out.println(“字符串num1是以22开始的 吗?“ + b); System.out.println(“字符串nu
14、m1是以78结束的 吗?“ + b2);,按字典顺序比较两个字符串,compareTo()方法按字典顺序比较两个字符串,该比较基于字符串中各个字符Unicode值。 如果按字典顺序此String对象位于参数字符串之前,则比较结果为一个负整数; 如果按字典顺序此String对象位于参数字符串之后,则比较结果为一个正整数; 如果这两个字符串相等,则结果为0。,pareTo(String otherstr) pareToIgnoreCase(String otherstr) str、otherstr:参加比较的两个字符串对象。,String str = new String(“b“); String
15、 str2 = new String(“a”); String str3 = new String(“c“); System.out.println(str + “ compareTo “ + str2 + “:“+ pareTo(str2); System.out.println(str + “ compareTo “ + str3 + “:“+ pareTo(str3) );,6.2.4 字符串替换,String类的replace()方法可以替换字符串内全部指定子字符串为另一字符串: public String replace(CharSequence oldstr, CharSequen
16、ce newstr) replace()方法返回的结果是一个新的字符串。 如果字符串oldChar没有出现在该对象表达式中的字符串序列中,则将原字符串返回。 如果要替换的字符oldstr在字符串中重复出现多次,replace()方法会将所有oldstr全部替换成newstr。,String str = “java project“; String newstr = str.replace(“j“,“J“); 此时,newstr的值为:Java proJect。 需要注意的是,要替换的字符oldstr的大小写要与原字符串中字符的大小写保持一致,否则不能成功的替换。 String newstr =
17、 str.replace(“P“,“t“);,6.2.4 字符串替换,还可以用该方法实现串中字符(子串)的删除,6.2.5 字符串分割,String类的split()方法可以用来分割字符串,也可以限定拆分的次数。 public String split(String regex) public String split(String sign,int limit) regex:用于分割字符串的符号或正则表达式 limit:用来限制返回数组中的元素个数,注意:没有统一的对字符进行分割的符号。 如果想定义多个分隔符。可使用符号“|”。,6.2.5 字符串分割,【例6-5】输出给定字符串中单词的个数
18、。,String message = “So say we all!“ ; String split=message.split(“ “); System.out.println(message + “中共有“ + split.length + “个单词!“);,6.2.5 字符串分割,String str=new String(“abc,def,ghi,gkl“); String newstr = str.split(“,“); for (int i = 0; i newstr.length; i+) System.out.println(newstri); String newstr2 =
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 字符串 ppt 课件
链接地址:https://www.31doc.com/p-2567068.html