ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:31.95KB ,
资源ID:21099044      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21099044.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java字符串处理文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java字符串处理文档格式.docx

1、12.5 charAt()和setCharAt() 2212.6 getChars() 2312.7 append() 2312.8 insert() 2412.9 reverse() 2512.10 delete()和deleteCharAt() 2512.11 replace() 2612.12 substring() 2612.13 附加的StringBuffer方法 27第13章 StringBuilder 28第1章 概述像大多数编程语言一样,在Java中,字符串是字符的序列。但是与许多其他以字符数组实现字符串处理的编程语言不同,Java是以String类型的对象来实现字符串的。Ja

2、va将字符串作为内置的对象处理,就提供了丰富的特性来处理字符串。例如:Java语言有多种方法用于比较两个字符串、查找字串、连接字符串以及改变字符串中字母的大小写。而且,可以通过多种方式来构造String对象,这样在需要时可以很容易地获得一个字符串。有些出乎意料的是,当创建一个String对象时,所创建的字符串是不可改变的。也就是说,一旦创建了一个String对象,就不能改变里面的字符。这给人的初步印象好像是严格约束,但实际上并不是这样的,你仍可以完成各种类型的字符串操作。不同之处在于,每次需要修改现有的字符串时,一个包含修改结果的String对象被创建,而原来的字符串不变。只用这种方式是因为固

3、定不变的字符串执行效率比变化的字符串要高。在需要使用可修改的字符串时,Java提供两个选项,StringBuffer和StringBuilder。它们包含的字符串在创建后可以修改。String、StringBuffer和StringBuilder类都是在java.lang中定义的。因此,它们能被所有程序使用。它们都被声明为final类型,这意味着它们不能产生子类。这允许某些增强性能的优化可作用于普通的字符串操作。这三个类都实现CharSequence接口。最后声明一点:String类型的字符串不能改变意味着String实例的内容在创建后不能改变。然而,声明为String对象引用的变量在任何时候

4、都可以改变,以指向一些其他的String对象。第2章 String构造函数String类支持几种构造函数,调用默认的构造函数可以创建一个空字符串。String s = new String();将创建一个String实例,该实例中不包含字符。如果创建有初始值的字符串,String类提供了一系列构造函数来完成该功能。为了创建由字符数组初始化的字符串,可以使用下面的构造函数:String(char chars)下面是一个例子:char chars = a, bc;String s = new String(chars);这个构造函数用字符串“abc”来初始化s。可以使用下面的构造函数指定字符数组的

5、一个范围为初始化值。String(char chars, int startIndex, int numChars)这里,startIndex指定子范围开始的下标,numChars指定所用字符的个数。这里有一个例子:defString s = new String(chars, 2, 3);它使用cde初始化。用下面的构造函数可以构造一个String对象,该对象包括了与另一个String对象相同的字符序列。String(String strObj)这里,strObj是String对象,请看下面的例子:/ Construst one String from another.class MakeS

6、tring public static void main(String args) char c = Jv String s1 = new String(c); String s2 = new String(s1); System.out.println(s1); System.out.println(s2); 程序输出如下:Java可以看到s1和s2包含相同的字符串。Java的Char类型使用16位(bit)Unicode字符集,在Internet中,字符串的典型是使用从ASCII字符集构造的8位字节数组。因为一般使用8位ASCII字符串,当给定一个字节数组时,String类提供了初始化字

7、符串的构造函数。它们形式如下:String(byte asciiChars)String(byte asciiChars, int startIndex, numChars)这里,asciiChars指定字节数组。第二种形式允许指定一个范围。在每一种构造函数中,字节到字符的转换是通过使用平台默认的字符编码完成的。下面的程序说明了这些构造函数:/ Construct string from subset of char array.class SubStringCons byte ascii = 65, 66, 67, 68, 69, 70; String s1 = new String(asc

8、ii); String s2 = new String(ascii, 2, 3);ABCDEFCDE字节字符转换构造函数的扩展版本是通过指定字节到字符转换的字符编码来定义的。但大多数时间使用的是平台默认编码。第3章 字符串的长度字符串的长度是指包含的字符个数。为了获取该值,调用length()方法,如下所示:int length()下面程序结果是3,因为s中有3 个字符。System.out.println(s.length();第4章 特殊的字符串操作因为字符串是编程中一个通用而且重要的部分,Java在语法中为字符串操作添加了特殊的支持。这些操作包括从字符串的字面量中自动创建的新字符串实例。

9、通过+运算符连接多个字符串对象,转换其他数据类型为字符串形式等。尽管有显示的方法可以执行这些函数,但是Java可以自动完成这些操作以方便编程人员,同时增加代码的清晰度。4.1 字符串字面量前面的例子是使用new操作从字符数组显示的创建一个String实例,但是有一种更容易的实现方式,即使用字符串字面量。对于程序中的每个字符串字面量,Java自动的构造一个String对象,因此可以使用字符串字面量初始化一个String对象。例如,下面的代码片段创建两个相等的字符串。String s1 = new String(chars);String s2 = abc;因为Java自动为每个字符串字面量创建S

10、tring对象,所以可以在能够用String对象的任何地方使用字符串字面量。例如,可以直接用引号内的字符串,就像是一个对象的引用,如下面的语句所示。该条语句调用“abc”字符串的length()方法,结果是打印“3”。System.out.println(.length();4.2 字符串的连接一般情况下Java不允许运算符直接应用于String对象,唯一的例外是+运算符,它用来连接两个字符串,结果产生一个新的字符串。同时,也允许使用一连串的+运算符。String age = 9String s = He is + age + years old.System.out.println(s);它

11、显示字符串“He is 9 years old.”。字符串连接的是一个实际应用是,当要创建一个很长的字符串时,可以将其拆开,然后使用+将各子串连接起来,以避免源代码中长字符串的换行。/ Using concatenation to prevent long lines.class ConCat public static void main(String args) String longStr = This could have bean + a very long line that would have wrapped arround. But string concatenation

12、prevents this. System.out.println(longStr);4.3 字符串和其他数据类型的连接在Java中,还可以把字符串和其他的数据类型相连接。例如,考虑与前面例子略有差别的一个例子:int age = 9;本例中,age是一个整型(int)而不是另一个String型值,但是产生的输出与前面一样。这是因为age的int值在String对象中会自动转化为它的字符串形式,然后这个字符串和前面一样被连接。这是因为只要+运算符的一个操作数是String实例,编译器就会将另一个操作数转换为它的字符串形式。对于其他类型的数值,在于字符串连接表达式混合时应当谨慎,因为有时会得到很

13、意外的结果。如下面的情况:four: + 2 + 2;它的结果显示: 22而不是预期的: 4原因是这样的:由于运算符的优先级高,所以“four: ”与2的字符串形式的连接首先发生,然后,它的结果再与2的字符串形式再连接一次。若要先完成整数的加法,必须使用括号,如下所示: + (2 + 2);现在s包含了字符串“four: 4”。4.4 字符串的转换和toString()在连接过程中,当Java将数据转换为字符串形式时,它是通过调用一个字符串转换方法valueOf()的重载版本来完成的。valueOf()是String类定义的方法,valueOf()被重载后用于所有的简单数据类型的Object类

14、型。对于简单数据类型,valueOf()返回一个字符串,该字符串包含了被调用的值的可读值。对于Object类型,valueOf()调用该对象的toString()方法。每一个类都实现了toString()方法,它是由Object类定义的,但toString()的默认实现往往是不够的。因为对大多数自创建的重要的类来说,通常要重写toString()并提供自己的字符串表单形式。幸运的是,这很容易做到。toString()方法的一般形式如下:String toString()要实现toString()方法,只需要返回一个String对象,该对象包含描述类对象的可读字符串。通过重写所创建类的toStr

15、ing(),可以将其完全集成到Java的编程环境中。例如,它可用于print()和println()语句以及连接表达式中。下面程序重写了类Box的toString()方法。/ Override toString() for Box class.class Box double width; double heoght; double depth; Box(double w, double h, double d) width = w; height = h; depth = d; public String toString() return Dimensions are + width +

16、by + depth + + height + .class ToStringDemo Box b = new Box(10, 12, 14); String s = Box b: + b; System.out.println(b); System.out.println(s);程序的输出结果如下:Dimensions are 10.0 by 14.0 by 12.0 Dimensions are 10.0 by 14.0 by 12.0可以看到,当Box对象在连接表达式中使用或出现在调用println()中时,Box的toString()方法被自动调用。第5章 字符截取String类提供了

17、几个从字符串中截取字符的方法,下面逐一介绍。尽管在String对象中构成字符串的字符不能像字符数组一样被索引,但利用下标(或偏移)可以对字符串进行操作。就像数组一样,String的下标从0开始。5.1 charAt()为了从一个字符串(String)中截取一个字符,可以通过charAt()方法直接引用单个字符。其一般形式如下:char charAt(int where)这里,where是想要获取的字符下标。where的值必须为非负,因为它指定了在字符串中的位置。charAt()返回指定位置的字符。char ch;ch = .charAt(1);将“b”赋值给ch。5.2 getChars()如

18、果需要一次截取多个字符,可以使用getChars()方法。它的一般形式如下:void getChars(int sourceStart, int sourceEnd, char target, int targetStart)这里sourceStart指定了子串开始字符的下标,sourceEnd指定了子串结束后的下一个字符的下标。因此,子串包含从sourceStart到sourceEnd-1的字符。接收字符的数组由target指定,target中开始复制了串的下标值是targetStart。注意,要确保target数组足够大,以便容纳指定的子串。下面的程序演示了getChars():class

19、 GetCharsDemoThis is a demo of the getChars method. int start = 10; int end = 14; char buf = new charend start; s.getChars(start, end, buf, 0); System.out.println(buf);输出结果如下:demo5.3 getBytes()替代getChars()的一种方法是将字符存储在字节数组中,该方法即getBytes(),它使用平台提供的默认的字符转换到字节的方法。下面是它的最简形式:byte getBytes()也可以使用其他形式的getBy

20、tes()。getBytes()经常用于将字符串值输入一个不支持16位Unicode字符的环境中,例如,多数Internet协议和文本格式使用8位ASCII进行文本交换。5.4 toCharArray()如果想将字符串对象的所有字符转换到一个字符数组中最简单的方法就是调用toCharArray()。它返回输入字符串的字符数组。char toCharArray()这是一种简洁方法。使用getChars()也可以达到同样的目的。第6章 字符串比较String类包括几种比较字符串或子串的方法,下面分别进行介绍。6.1 equals()和equalsIgnoreCase()要比较两个字符串是否相等,使

21、用equals()。它的形式如下:boolean equals(Object str)这里str是与调用字符串对象进行比较的字符串对象。如果字符串包含同样顺序的同样字符,它返回true。否则,返回false。比较时是区分大小写的。如果要进行忽略大小写的比较,可以调用equalsIgnoreCase()。当它比较两个字符串时,它认为A-Z和a-z是一样的。boolean equalsIgnoreCase(Object str)这里,str是与调用字符串比较的字符串对象。如果两个字符串包含同样顺序字符,啊返回true。下面是一个演示equals()和equalsIgnoreCase()的例子:/

22、Demonstrate equals() and equalsIgnoreCase().class EqualsDemo String s1 = Hello String s2 = String s3 = Good-bye String s4 = HELLO System.out.println(s1 + equals + s2 + - + s1.equals(s2); + s3 + + s1.equals(s3); + s4 + + s1.equals(s4); equalsIgnoreCase + s1.equalsIgnoreCase(s4);程序输出部分如下:Hello equals

23、Hello - trueHello equals Good-bye - falseHello equals HELLO -Hello equalsIgnoreCase HELLO -6.2 regionMatches()regionMatches()方法用于比较一个字符串中特定区域与另一个字符串的另一特定区域,它有一个重载的形式允许在比较中忽略大小写。下面是这方法的两种常用形式:boolean regionMatches(int startIndex, String str2, int str2StartIndex, int numChars)boolean regionMatches(boo

24、lean ignoreCase, int startIndex, String str2, int str2StartIndex, int numChars)两种版本中,startIndex都是指字符串的区域的开始点,被比较的字符串由str2指定,str2的开始由str2StartIndex指定,numChars是指被比较的子串的长度,如果ignoreCase为true,字符比较忽略大小写,否则区分大小写。6.3 startsWith()和endsWith()String定义了两个例程,它们可以说是regionMatches()的特殊形式。startsWith()方法决定字符串是否特定字符开始

25、,endsWith()方法决定给字符串是否是以特定字符串结果。它们的一般形式如下:boolean startsWith(String str)boolean endsWith(String str)这里,str是被测试的字符串。如果字符串匹配,返回true,否则返回false。Foobar.endsWith(bar)和.startsWith(Foo都返回true。第二种形式的startsWith()如下所示,需要指定起始点:boolean startsWith(String str, int startIndex)这里,startIndex指调用字符串搜索的开始点,例如:, 3)将返回true。6.4 equals()与=equals()方法和=运算符完成的是两个不同的操作。equals()方法是比较字符串对象中的字符,=运算符比较两个对象是否引用同一实例。在下面的程序中,两个不同的字符串包含同样的字符,但是对引用的比较是不相等的。/ equals() vs =class EqualsNotEqualsTo = + (s1 = s2);变量s1引用值是为“Hello”的一个字符串实例

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1