版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、4.2字符串字符串l字符串字符串l字符串的常用方法字符串的常用方法l字符串与基本数据的相互转化字符串与基本数据的相互转化l对象的字符串表示对象的字符串表示lStringTokenizer类类l符串与字符、字节数组符串与字符、字节数组lStringBuffer类类一一字符串字符串 StringlJava使用java.lang包中的String类来创建一个字符串变量,因此字符串变量是对象。1.符串常量 如,“你好”,“1234.987”,“weqweo”。2.声明和创建字符串 使用String类的构造方法,例如: String s=new String(“we are students”);3.
2、引用字符串常量对象 String s=“How are you”;public boolean equals(String s) l字符串对象调用String类中的equals方法,比较当前字符串对象的实体是否与参数指定的字符串s的实体相同.l如:String tom=new String( we are students);String boy=new String( We are students);String jerry= new String(we are students);ltom.equals(boy)的值是false,ltom.equals(jerry)的值是 true。 p
3、ublic boolean startsWith(String s)public boolean endsWith(String s) l字符串对象调用startsWith(String s)方法,判断当前字符串对象的前缀是否是参数指定的字符串s .l字符串对象调用endsWith(String s) 方法,判断当前字符串的后缀是否是字符串s .lString tom=“220302620629021”ltom.startsWith(“220”)的值为trueltom.endsWith(“022”)的值为falsepublic boolean regionMatches(int firstSt
4、art,String other,int otherStart,int length) public boolean regionMatches(boolean b,int firstStart,String other,int otherStart,int length)参数参数b 决定是否忽略大小写,决定是否忽略大小写,b取取true时,忽略大小写。时,忽略大小写。 l字符串调用regionMatches(int firstStart, String other, int otherStart,int length)方法,l从参数firstStart指定的位置开始,l在当前字符串当前字符串
5、取长度为length的一个子串;l从参数othertStart指定的位置开始,l在other中取长度为length的一个子串;l进行比较,如果两个子串相同该方法就返回true,否则返回false。例子例子: 判断一个字符串中共出现几个判断一个字符串中共出现几个enlclass Test3l public static void main(String args)l int number=0; l String s=student;entropy;engage,english,client;l for(int k=0;ks.length();k+)l if(s.regionMatches(k,e
6、n,0, 2)l System.out.printf(k=%3d,k);l number+;l l /从k的位置开始取长度为2的字串,从“en”的0开始去长度为2的字串l System.out.println(number=+number);l ll/region 范围 区域 Matche匹配public int compareTo(String s)public int compareToIgnoreCase(String s )l字符串对象可以使用String类中的compareTo(String s)方法,按字典序与参数s指定的字符串比较大小。l如果当前字符串与s相同,该方法返回值0;如
7、果当前字符串对象大于s,该方法返回正值;如果小于s,该方法返回负值。 例子:将一个字符串数组按字典序重新排列例子:将一个字符串数组按字典序重新排列lclass Testl public static void main(String args) l String a=door,apple,Applet,girl,boy;l for(int i=0;ia.length-1;i+) l for(int j=i+1;ja.length;j+) l if(pareTo(ai)0) l String temp=ai;l ai=aj;l aj=temp;l l l l for(int i=0;ia.len
8、gth;i+) l System.out.print( +ai);l l ll/Compare 比较public int indexOf (String s) l字符串调用方法indexOf (String s)从当前字符串的头开始检索字符串s,并返回首次出现s的位置。如果没有检索到字符串s,该方法返回的值是-1。l字符串调用indexOf(String s ,int startpoint)方法从当前字符串的startpoint位置处开始检索字符串s,并返回首次出现s的位置。如果没有检索到字符串s,该方法返回的值是-1。l字符串调用lastIndexOf (String s)方法从当前字符串的
9、头开始检索字符串s,并返回最后出现s的位置。如果没有检索到字符串s,该方法返回的值是-1。 例子例子l String tom=I am a good cat;l System.out.println(tom.indexOf(I);l System.out.println(tom.indexOf(a);l System.out.println(tom.indexOf(a,7);l System.out.println(tom.indexOf(good);l System.out.println(tom.indexOf(w,2);l/index 标志 指示public String substri
10、ng(int startpoint) l字符串对象调用该方法获得一个当前字符串的子串,该子串是从当前字符串的startpoint处截取到字符串的末尾所得到的字符串。l字符串对象调用substring(int start ,int end)方法获得一个当前字符串的子串,该子串是从当前字符串的start处截取到end处所得到的字符串,但不包括end处所对应的字符。 例子例子lString tom=I love them;lString s1=tom.substring(2);lString s2=tom.substring(2,5);lSystem.out.println(s1);lSystem.
11、out.println(s2);public String replaceAll(String oldString ,String newString)public String replaceFirst(String oldString ,String newString)lreplaceAll:字符串对象s调用该方法,可以通过用参数newString指定的字符串替换s中由oldString指定的所有所有字符串而得到的字符串;lreplaceFirst:字符串对象s调用该方法,可以可以通过用参数newString指定的字符串替换s中第一个由oldString指定的字符串而得到的字符串;例子例
12、子lclass Test4 l public static void main(String args) l String path=c:myfile2000result.txt;l int index=path.lastIndexOf();l String fileName=path.substring(index+1);l String newName=fileName.replaceAll(.txt,.java);l System.out.println(path);l System.out.println(fileName);l System.out.println(newName);
13、 lpublic String trim() l一个字符串s通过调用方法trim()得到一个字符串对象,该字符串对象是s去掉前后空格后的字符串。 l例如: String s= I am a student ; System.out.println(s.trim();三三 字符串与基本数据的相互转化字符串与基本数据的相互转化 l使用java.lang包中的Byte、Short、Integer 、 Long、Float、Double类调相应的类方法:public static byte parseByte(String s) throws NumberFormatExceptionpublic s
14、tatic short parseShort(String s) throws NumberFormatExceptionpublic static short parseInt(String s) throws NumberFormatExceptionpublic static long parseLong(String s) throws NumberFormatExceptionpublic static float parseFloat(String s) throws NumberFormatExceptionpublic static double parseDouble(Str
15、ing s) throws NumberFormatException 可以将“数字”格式的字符串,转化为相应的基本数据类型。l数字转换为字符串lPublic static String valueOf(int n)lPublic static String valueOf(float n)l例如:lString str=String.valueOf(123.56)lpublic class Test3l l public static void main(String args ) l double item,sum=0;l String s = 12,15,16,36;l for(int
16、i=0;is.length;i+) l item=Double.parseDouble(si);l sum=sum+item; l l System.out.println(sum);l l int item1,sum1=0;l String s1 = 12.5,15.5,16.5,36;l for(int i=0;is1.length;i+) l item1=Integer.parseInt(si);l sum1=sum1+item1; l l System.out.println(sum1);l l float item3,sum3=0;l String s3 = 12,15,16,36;
17、l for(int i=0;is3.length;i+) l item3=Float.parseFloat(si);l sum3=sum3+item3; l l System.out.println(sum1);l ll四四 对象的字符串表示对象的字符串表示 l在子类的讲述中我们讲过,所有的类都默认是java.lang包中Object类的子类或间接子类。Object类有一个public 方法toString(),一个对象通过调用该方法可以获得该对象的字符串表示。例子例子6limport java.util.Date;limport java.awt.*;lpublic class Test6l
18、 public static void main(String args)l Date date=new Date();l Button button=new Button(确定);l System.out.println(date.toString();l System.out.println(button.toString(); l l五五 StringTokenizer类 l当我们分析一个字符串并将字符串分解成可被独立使用的单词时,可以使用java.util包中的StringTokenizer类,该类有两个常用的构造方法: StringTokenizer(String s) 为字符串s构
19、造一个分析器。使用默认的分隔符集合,即空格符(若干个空格被看做一个空格)、换行符、回车符、Tab符、进纸符。StringTokenizer(String s, String delim) 为字符串s构造一个分析器。参数dilim中的字符被作为分隔符。l我们把一个StringTokenizer对象称作一个字符串分析器;l每当调用nextToken()时,都将在字符串中获得下一个语言符号,同时,字符串分析器中的负责计数的变量的值就自动减一;lhasMoreTokens(),只要字符串中还有语言符号,返回true,否则为false;lcountTokens(),得到分析器中计数变量的值例子例子lim
20、port java.util.*;lpublic class Testl public static void main(String args)l String s=I am James,she is my girlfriend;l StringTokenizer fenxi=new StringTokenizer(s,“ ,”); /空格和逗号分隔l int number=fenxi.countTokens();l while(fenxi.hasMoreTokens() l String str=fenxi.nextToken();l System.out.println(str);l S
21、ystem.out.println(还剩+fenxi.countTokens()+个单词);l l System.out.println(s共有单词:+number+个);l ll/Token象征六 字符串与字符、字节数组 lpublic void getChars(int start,int end,char c,int offset ) 字符串调用getChars方法将当前字符串中的一部分字符拷贝到参数c指定的数组中。将字符串中从位置start到end-1位置上的字符拷贝的数组c中,并从数组c的offset处开始存放这些字符。需要注意的是,必须保证数组c能容纳下要被拷贝的字符。lpubli
22、c char toCharArray() 字符串对象调用该方法可以初始化一个字符数组,该数组的长度与字符串的长度相等,并将字符串对象的全部字符拷贝到该数组中。例子例子8lclass Test8 l public static void main(String args)l char c,d;l String s=巴西足球队击败德国足球队;l c=new char2;l s.getChars(5,7,c,0);l System.out.println(c);l d=new chars.length();l s.getChars(7,12,d,0);l s.getChars(5,7,d,5);l
23、s.getChars(0,5,d,7);l System.out.println(d);l l例子例子9 字符串加密解密,字符串加密解密,使用使用toCharArray()方法,方法,lclassTest9 l public static void main(String args) l String s=清华大学出版社;l char a=s.toCharArray(); l for(int i=0;ia.length;i+)l ai=(char)(ait); / 异或运算l lString secret=new String(a);lSystem.out.println(密文:+secret
24、);l for(int i=0;ia.length;i+)l ai=(char)(ait); / 异或运算l lString code=new String(a); l System.out.println(原文:+code);l llString(byte,int offset,int length) 该构造方法使用平台默认的字符编码,用指定的字节数组的一部分,即从数组起始位置offset开始取length个字节构造一个字符串对象。lpublic byte getBytes() 使用平台默认的字符编码,将当前字符串转化为一个字节数组。例子例子10lpublic class Test10l p
25、ublic static void main(String args)l byte d=你我他.getBytes(); l System.out.println(数组d的长度是(一个汉字占两个字节):+d.length+个字节);l String s=new String(d,0,2);l System.out.println(s);l l4.2.2 StringBuffer类 lString类创建的字符串对象是不可修改的,也就是说,String字符串不能修改、删除或替换字符串中的某个字符,即String对象一旦创建,那么实体是不可以再发生变化的.lStringBuffer类能创建可修改的字符
26、串序列,也就是说,该类的对象的实体的内存空间可以自动的改变大小,便于存放一个可变的字符序列。 StringBuffer类的构造方法类的构造方法lStringBuffer() 无参数创建StringBuffer对象,初始容量为16个字符;lStringBuffer(int size) 初始容量为size个字符;lStringBuffer(String s) 初始容量为字符串s的长度额外再加16字符。StringBuffer类的常用方法类的常用方法lappend 可将其他Java类型数据转化为字符串后再追加到StringBuffer对象中;lchar charAt (int n) 得到第n个位置上
27、的字符;lvoid setCharAt (int n, char ch) 将第n个位置上的字符用ch指定的字符替换;lStringBuffer insert (int index, String str) 将一个字符串str插入到第index位置上,并返回当前对象的引用;lpublic StringBuffer reverse() 将字符序列翻转;lStringBuffer delete (int startIndex, int endIndex) 删除从startIndex开始到endIndex-1的子串;lStringBuffer replace( int startIndex, int endIndex, String str) 将从startIndex开始到endIndex-1的子串用字符串str替换。例子例子11lclass Test11l public static void main(String args )l StringBuffer str=new StringBuffer(62791720);l str.insert(0,010-);l str.setCharAt(7 ,8); l s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年专业招商咨询与服务协议模板
- 高端住宅样板间设计与装修服务协议
- 餐饮行业2024年供餐服务协议模板
- 2024家庭月嫂服务介绍协议
- 2024年盛典活动详细服务协议
- 电池产品购销协议文本2024
- 儿童教育机构设备供应协议:2024
- 2024重楼产品订购协议范本
- 乙方房租合同范本
- 球罐施工方案-技术交底
- (试卷)建瓯市2024-2025学年第一学期七年级期中质量监测
- 《安徽省二年级上学期数学期末试卷全套》
- 2024年企业业绩对赌协议模板指南
- “全民消防生命至上”主题班会教案(3篇)
- 2024年海南省高考历史试卷(含答案解析)
- 2024年湖北武汉大学化学与分子科学学院招聘1人(实验中心)历年高频难、易错点500题模拟试题附带答案详解
- 2024新能源光伏电站运行规程和检修规程
- 三年级美术上册全册教案(湘教版)
- 2024版成人术中非计划低体温预防与护理培训课件
- 综合素质评价平台建设方案-2024
- GB/T 44539-2024萤石技术规范
评论
0/150
提交评论