




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章 字符串处理,字符串是字符的序列,它是组织字符的基本的数据结构。Java将字符串当作对象来处理,它提供了一系列的方法对整个字符串进行操作,使得字符串的处理更加容易和规范。在Java中,提供了各种处理字符串的方法。 Java语言中的包java.lang中封装了final类String和StringBuffer,其中类String对象是字符串常量,建立后不能改变。而类StringBuffer对象类似于一个字符缓冲区,建立后可以修改。,6.1 类String字符串,6.1.1 类String字符串的定义 String类是字符串常量类,String对象建立后不能修改。以前使用的每个字符串常量(用双引号括起来的一串字符)实际上都是String对象,如字符串“Java”在编译后即成为String对象。因此,可以用字符串常量直接初始化一个String对象。例如: String s = “Hello World. “; 由于每个字符串常量对应一个String类的对象,所以对一个字符串常量可以直接调用类String中提供的方法。,例如: int len = “Hello World!“.length(); 将返回字符串的长度12,字符串的长度即字符串中字符的个数。 通过类String提供的构造方法,可以生成一个空字符串(不包含任何字符的字符串),也可以由字符数组或字节数组来生成一个字符串对象。缺省的构造方法不需要任何参数,它生成一个空字符串。例如: String s = new String(); 其他创建String对象的构造方法有: String(String value)用已知串value创建一个字符串对象。 String(char chars)用字符数组chars创建一个字符串对象。,String(char chars,int startIndex,int numChars)用字符数组chars的startIndex位置开始的numChats个字符,创建一个字符串对象。 String(byte ascii,int hiByte)用字节数组ascii创建一个字符串对象,Unicode字符的高位字节为hiByte,通常应该为0。 String(byte ascii,int hiByte,int startIndex,int numChars)用字节数组ascii创建一个字符串对象。其参数的意义同上。 由于在Internet上通常使用的字符都为8位的ASCII码,Java提供了从字节数组来初始化字符串的方法,并且用hiByte来指定每个字符的高位字节,对ASCII码来说,hiByte应为0,对于其他非拉丁字符集,hiByte的值应该非0。,【例6.1】类String构造方法的使用。 public class StringConstructors public static void main(String args) String s,s1,s2,s3,s4,s5,s6,s7; byte byteArray = (byte)J,(byte)a,(byte)v,(byte)a; Char charArray = 程,序,设,计; StringBuffer sb = new StringBuffer(“欢迎“); s = new String(“Hello!“); s1 = new String(); s2 = new String(s); s3 = new String(sb); s4 = new String(charArray,2,2); s5 = new String(byteArray,0); s6 = new String(charArray); s7 = new String(byteArray,0,0,1);,System.out.println(“s = “+ s ); System.out.println(“s1 = “+ s1); System.out.println(“s2 = “+ s2); System.out.println(“s3 = “+ s3); System.out.println(“s4 = “+ s4); System.out.println(“s5 = “+ s5); System.out.println(“s6 = “+ s6); System.out.println(“s7 = “+ s7); 程序运行结果为:,s = Hello! s1 = s2 = Hello! s3 = 欢迎 s4 = 设计 s5 = Java s6 = 程序设计 s7 = J,6.1.2 类String 的常用方法 类String中提供的访问String字符串的方法很多,大体上可分为类转换、子字符串、比较、修改等几类。 1.类String字符串的比较 类String中提供了一些方法,用来进行字符串的比较。 (1)boolean equals(Object anObject)和 equalsIgnoreCase(String anotherString) 方法equals()和equalsIgnoreCase()用来比较两个字符串的值是否相等,不同的是后者忽略字母的大小写。例如: System.out.println(“abc“.equals(“abc“); System.out.println(“abc“.equalsIgnoreCase(“ABC“);,注意:它们与运算符“=”实现的比较是不同的。运算符“=”比较两个字符串对象是否引用同一个实例对象,而equals()和equalsIgnoreCase()则比较两个字符串中对应的每个字符是否相同。例如: String s = new String(“abc“); String s1= new String(“abc“); / s,s1是两个不同的对象 System.out.println( s = s1 ); / 输出为 false System.out.println(“abc“=“abc“); / 输出为 true (2)int compareTo(String anotherString) 为了比较两个字符串的大小,类String中实现了方法compareTo(),通过返回的整数值指明当前字符串与参数字符串的大小关系。若调用的串对象比参数大,返回正整数。反之,返回负整数。相等则返回0。,若比较的两个字符串有不同的字符,则从左边数起的第一个不同字符的大小即两个字符串的大小,字符的大小建立在Unicode字符集基础上。方法的返回值为: this.charAt(k)-anotherString.charAt(k) 例如: System.out.println(“this“.compareTo(“that“); 若比较的两个字符串各个位置的字符都相同,仅长度不同,则方法的返回值为: this.length()-anotherString.length() 例如: System.out.println(“abc“.compareTo(“abcd“) ); /1 方法int compareToIgnoreCase(String str)是与上述方法功能相同的方法,但忽略字母大小写。,(3)boolean startWith(String prefix)和 boolean endWith(String suffix) 两个方法均有重载: boolean startWith(String prefix,int offset) boolean endWith(String suffix,int offset) 方法startWith()和endWith()用来比较当前字符串的起始字符(或子字符串)prefix和终止字符(或子字符串)suffix是否和调用的字符(或字符串)相同,重载的方法中同时还可以指定比较的开始位置offset。 (4)boolean regionMatches(int toffset,String other,int ooffset,int len) 该方法有重载: boolean regionMatches(boolean ignoreCase, int toffset,String other,int ooffset,int len);,regionMatches方法的功能是比较两个字符串中指定区域的子字符串是否相同。 其中,toffset和ooffset分别指明当前字符串和参数字符串中所要比较的子字符串的起始位置,len指明比较的长度,而ignoreCase指明比较时是否区分大小写。无此参数,比较是区分大小写的。 2.类String子字符串和定位 (1)char charAt(int index) 该方法的功能是返回字符串index处的字符,index的值从0到串长度减1。例如: System.out.println(“China“.charAt(1); / 输出为h (2)int indexOf(int ch)和lastIndexOf(int ch) 方法indexOf()有重载: indexOf(int ch,int fromIndex) int indexOf(String str),int indexOf(String str,int fromIndex) 以上方法的功能是返回字符串对象中指定的字符和子串首次出现的位置,从串对象开始处或从fromIndex处开始查找。若未找到则返回-1。 方法lastIndexOf()也有重载: int lastIndexOf(int ch,int fromIndex) Int lastIndexOf(String str) int lastIndexOf(String str,int fromIndex) 这几个方法与相应的indexOf方法相比,不同之处是从串对象的右端开始查找。 【例6.2】lastIndexOf的使用。 class LastNumber public static void main(String args) String s1 = “67.89,55.87,-56.45,11.22,78.9“;,int i1 = s1.lastIndexOf(,); String s2 = s1.substring(i1 + 1); System.out.println(s2); 程序运行结果为: 78.9 (3)String substring(int beginindex)和substring(int beginindex,int endindex) 方法的功能是返回子字符串。前者返回从位置beginindex开始处到串尾的子字符串;后者是返回从beginindex开始到endindex - 1为止的子字符串,子串长度为endindex - beginindex。,【例6.3】类String方法indexOf和substring的使用。 class DollarAmount public static void main(String args) String s1 = “这块显示卡的售价为$45.60“; int i1 = s1.indexOf($); String s2 = s1.substring(i1); System.out.println(s2); 程序运行结果为: $45.60 【例6.4】显示一周星期日至星期六的名称。 class WeekName public static void main(String args),String xq = “日一二三四五六“,s; int i; for(i=0;i7;i+) s=xq.substring(i,i+1); System.out.print(“ 星期“+s); System.out.println(); 程序运行结果为: 星期日 星期一 星期二 星期三 星期四 星期五 星期六,3.类String字符串对象的修改 这里,修改的含义是将修改后的字符串对象赋给新的对象或直接输出。 (1)String toLowerCase()和String toUpperCase()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版专业培训顾问机构合作服务合同样本
- 2025版私房买卖合同附新能源设备安装及维护合同
- 2025至2030黄霉素(CAS11015375)行业市场深度研究及发展前景投资可行性分析报告
- 2025至2030高压釜(OOA)预浸料行业市场深度研究及发展前景投资可行性分析报告
- 2025-2030年中国大容量注射剂整体解决方案行业市场深度调研分析及投资前景机遇研判报告
- 2025年湖北省潜江市事业单位工勤技能考试考试题库及参考答案
- 2025年湖北省鄂州市警察招考行政能力测验模拟题(附答案)
- 2025年非高危行业安全员培训考试试题含答案
- 2025年法律知识类面试题及答案
- 油菜育苗合同范本
- 急性呼吸衰竭急诊服务流程
- 建筑结构选型课程设计
- 国家心理健康和精神卫生防治中心招聘笔试真题2023
- 《生物经济学》课程教学大纲
- 《带状疱疹》课件
- 神经康复学教案
- 2025年中考作文试题预测及范文
- 部编版道德与法治二年级上册全册教案
- 2021年秋新教科版六年级上册科学全册表格式教案
- 2025高二政治开学第一课《政好有你 再创佳绩》
- 碳谱定量分析方法
评论
0/150
提交评论