java中字符串和正则表达式.ppt
《java中字符串和正则表达式.ppt》由会员分享,可在线阅读,更多相关《java中字符串和正则表达式.ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023/1/281第第6章字符串和正则表达式章字符串和正则表达式 本章导读本章导读nString类nStringBuffer类nStringTokenizer类n正则表达式与字符串的替换和分解nScanner类n模式匹配 2023/1/2826.1 String类类 Java使用java.lang包中的String类来创建一个字符串变量,因此字符串变量是类类型变量,是一个对象。2023/1/2831.创建字符串对象 使用String类的构造方法创建字符串对象,例如:String s;String s;s=new String(we are students)s=new String(we a
2、re students);声明和创建可用一步完成:String s=new String(we are students);String s=new String(we are students);也可以用一个已创建的字符串创建另一个字符串,如:String tom=String(s);String tom=String(s);StringString类还有两个较常用的构造方法:类还有两个较常用的构造方法:(1)String(char a)(1)String(char a)用一个字符数组a 创建一个字符串对象,如 char a=b,o,y;char a=b,o,y;String s=new S
3、tring(a);String s=new String(a);(2)(2)String(char String(char a,int a,int startIndex,int startIndex,int count)count)提取字符数组a中的一部分字符创建一个字符串对象,参数startIndex和count分别指定在a中提取字符的起始位置和从该位置开始截取的字符个数,如 char a=s,t,b,u,s,n;char a=s,t,b,u,s,n;String s=new String(a,2,3);String s=new String(a,2,3);2023/1/284 2引用字符串
4、常量对象 字符串常量是对象,因此可以把字符串常量的引用赋值给一个字符串变量,如string s1,s2;s1=How are you;s2=How are you;这样,s1和s2具有相同的引用,因而具有相同的实体。s1和s2的内存示意如图6.1所示。2023/1/2853.String 3.String 类的常用方法(类的常用方法(1 1)(1 1)public int length()public int length()获取一个字符串的长度 String s=we are students,tom=String s=we are students,tom=我们是学生我们是学生;int n
5、1,n2;int n1,n2;n1=s.length();n1=s.length();n2=tom.length();n2=tom.length();那么,n1的值是15,n2的值是5。字符串常量也可调用length()获得自身长度,如 你你的的爱爱好好.length()length()的值是4。(2 2)public boolean equals(String s)public boolean equals(String s)比较当前字符串对象的实体是否与参数指定的字符串s的实体相同.String tom=new String(we are students);String tom=new
6、String(we are students);String jerry=new String(we are students);String jerry=new String(we are students);tom.equals(jerry)的值是的值是true(tom=jerry的值是false)。内存示意如图6.2 相近的方法:public boolean equalsIgnoreCase(String s)public boolean equalsIgnoreCase(String s)(3 3)public boolean contains(String s)断当前字符串对象是否含
7、有参数指定的字符串s 例6-1说明了方法equals()和contains()的用法(效果如图6.3所示)。2023/1/286内存示意如图6.22023/1/2873.String 3.String 类的常用方法(类的常用方法(2 2)(4 4)public boolean startsWith(String s)public boolean startsWith(String s)、public boolean endsWith(String s)public boolean endsWith(String s)判断当前字符串对象的前缀、后缀是否是参数指定的字符串s,如 tom.start
8、sWith(220)tom.startsWith(220)的的 值值 是是 true,jerry.startsWith(220)true,jerry.startsWith(220)的的 值值 是是falsefalse。tom.endsWith(021)tom.endsWith(021)的值是的值是truetrue,jerry.endsWith(021)jerry.endsWith(021)的值是的值是falsefalse。(5 5)public int compareTopublic int compareTo(String sString s)按字典序与参数s指定的字符串比较大小。如 Str
9、ing str=abcde String str=abcde;pareTo(boy)pareTo(boy)小于小于0 0,pareTo(aba)pareTo(aba)大于大于0 0,pareTo(abcde)pareTo(abcde)等于等于0 0。相近的方法:public int compareToIgnoreCase(String s)public int compareToIgnoreCase(String s)该方法忽略大小写2023/1/2883.String 3.String 类的常用方法(类的常用方法(3 3)(6 6)public int indexOf(String s)pu
10、blic int indexOf(String s)从当前字符串的头开始检索字符串s,并返回首次出现s的位置。如果没有检索到字符串s,该方法返回的值是-1。indexOf(String indexOf(String s s,int,int startpoint)startpoint)从当前字符串的startpoint位置处开始检索字符串s,并返回首次出现s的位置。如果没有检索到字符串s,该方法返回的值是-1。lastIndexOf lastIndexOf(String(String s)s)从当前字符串的头开始检索字符串s,并返回最后出现s的位置.如果没有检索到字符串s,该方法返回的值是-1。
11、如String tom=I am a good cat;String tom=I am a good cat;tom.indexOf(a);/tom.indexOf(a);/值是值是2 2tom.indexOf(good,2);/tom.indexOf(good,2);/值是值是7 7tom.indexOf(a,7);/tom.indexOf(a,7);/值是值是1313 tom.indexOf(w,2);/tom.indexOf(w,2);/值是值是-1-1(7 7)public String substring(int startpoint)public String substring(
12、int startpoint)获得一个当前字符串的子串,该子串是从当前字符串的startpoint处截取到最后所得到的字符串。substring(int substring(int start start,int,int end)end)获得一个当前字符串的子串,该子串是从当前字符串的start处截取到end处所得到的字符串,但不包括end处所对应的字符。如 String tom=I love tom;String tom=I love tom;String s=tom.substring(2,5);String s=tom.substring(2,5);则则s s为为“lov”lov”。(8
13、 8)public String trim()public String trim()字符串对象s调用该方法得到一个字符串对象,该字符串对象是s去掉前后空格后的字符串。2023/1/2894.4.字符串与基本数据的相互转化字符串与基本数据的相互转化 java.lang包中的Integer类调用其类方法:public static int parseInt(String s)public static int parseInt(String s)将“数字”格式的字符串,如“12387”,转化为int型数据。类似地,使用java.lang包中的Byte、Short、Long、Float、Doubl
14、e类调相应的类方法:public static byte parseByte(String s)public static byte parseByte(String s)public static short parseShort(String s)public static short parseShort(String s)public static long parseLong(String s)public static long parseLong(String s)public static double parseDouble(String s)public static do
15、uble parseDouble(String s)public static double parseDouble(String s public static double parseDouble(String s)可以将“数字”格式的字符串,转化为相应的基本数据类型。使用Long类中的下列类方法可得到整数的各种进制的字符串表示:public static String toBinaryString(long i)public static String toBinaryString(long i)public static String toOctalString(long i)publ
16、ic static String toOctalString(long i)public static String toHexString(long i)public static String toHexString(long i)public static String toString(long i,int p)public static String toString(long i,int p)其中的toString(longi,intp)返回整数i的p进制表示 例6-2求若干个数的平均数,若干个数从键盘输入(效果如图6.4所示)。2023/1/2810例子6-2 效果图 有时,我们
17、需要将数字转化为字符串,可以使用String 类的下列类方法:public String valueOfpublic String valueOf(byte nbyte n)public String valueOf public String valueOf(int nint n)public String valueOf public String valueOf(long nlong n)public String valueOf public String valueOf(float nfloat n)public String valueOf public String valueO
18、f(double ndouble n)形如123、1232.98的数值转化为字符串,如String str=String.valueOf(12313.9876);float x=123.987f;String temp=String.valueOf(x);2023/1/2811 5 5对象的字符串表示对象的字符串表示 所有的类都默认是java.lang包中Object类的子类或间接子类。Object类有一个public方法public String toString(),一个对象通过调用该方法可以获得该对象的字符串表示。一个类可以通过重写public String toString()方法,以
19、便获得该类对象想要的字符串表示,比如java.util包中的Date类就重写了public String toString(),使得Date对象调用toString()得到的字符串是由日期信息组成的字符序列。如果一个类没有重写public String toString()方法,那么该类所创建的对象调用toString()方法方法得到的字符串格式为:类名类名对象的引用对象的引用 例6-3中的Student类重写了toString()方法、TV类没有重写toString()方法.2023/1/2812 6字符串与字符数组、字节数组(1 1)字符串与字符数组)字符串与字符数组 类的构造方法Stri
20、ng(char)和String(char,int offset,int length)分别用数组a中的全部字符和部分字符创建字符串对象。String类也提供了将字符串存放到数组中的方法:public void getChars(int start,int end,char c,int offset)字符串调用getChars()方法将当前字符串中的一部分字符复制到参数c指定的数组中,将字符串中从位置start到end-1位置上的字符复制的数组c中,并从数组c的offset处开始存放这些字符。String类还提供了一个方法 public char toCharArray()字符串对象调用该方法可
21、以初始化一个字符数组,该数组的长度与字符串的长度相等,并将字符串对象的全部字符复制到该数组中。例6-4将用户在键盘输入的字符串加密,然后输出密文,见效果图。(2 2)字符串与字节数组)字符串与字节数组String类的构造方法String(byte)用指定的字节数组构造一个字符串对象。构造方法String(byte,int offset,int length)用指定的字节数组的一部分,即从数组起始位置offset开始取length个字节构造一个字符串对象。方法public byte getBytes()使用平台默认的字符编码,将当前字符串转化为一个字节数组。例6-5使用了字节数组,见效果图。20
22、23/1/2813例子6-4,例子6-5效果图例子6-5效果图例子6-4效果图2023/1/28146.2 StringBuffer 类类 前面我们学习了String字符串对象,String类创建的字符串对象是不可修改的。也就是说,String字符串不能修改、删除或替换字符串中的某个字符,即String对象一旦创建,实体是不可以再发生变化的(如图6.5所示).本节将介绍StringBuffer类,该类能创建可修改的字符串序列,即该类的对象的实体的内存空间可以自动的改变大小,便于存放一个可变的字符串。一个StringBuffer对象调用append()方法方法可以追加字符串序列,如 String
23、Buffer s=new StringBuffer(I love this game);s.append(ok);对象s调用append()追加一个字符串序列,如图6.6所示。2023/1/28151StringBuffer类的构造方法 StringBuffer类 有 3个 构 造 方 法:StringBuffer(),StringBuffer(int size)和和StringBuffer(String s)。构造方法StringBuffer()创建一个StringBuffer对象,分配给该对象的实体的初始容量可以容纳16个字符,当该对象的实体存放的字符序列的长度大于16时,实体的容量自动增
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 字符串 正则 表达式
限制150内