版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
IntroductionToJavaProgrammingCollegeOfSoftwareLiu.ZhiGangEmail:dqpilzg@163.comChapter09StringandTextIOPartIStringstr1=“Java";str1=“HTML";问题:
下列代码是否改变字符串的内容?结论:字符串的内容一旦建立,该字符串所在堆上的内容就无法改变。什么是字符串?(1)字符串就是一个字符序列.在许多语言中,将字符串处理为字符的数组,但是在java中字符串是一个对象.(2)java提供了StringStringBuffer
StringTokenizer这三个类来处理字符串.8.1String构造函数String()String(Stringvalue)String(char[]chr)String(SringBuffers)Stringstr1="WelcometoJava";Stringstr2=new
String("WelcometoJava");char[]chr={'W','e','l','c','o','m','e','','t','o','','J','a','v','a'};Stringstr3=new
String(chr);方法字符串比较equals(String
str)(returntypeisboolean)falseStrings1=new
String("abc");Strings2=new
String("abc");if(s1==s2)
System.out.println(“true");else
System.out.println(“false");if(s1.equals(s2))
System.out.println(“true");else
System.out.println(“false");trueSummarize:==比较的是变量在栈中的值是否相同。对于基础数据类型,可以比较其值是否相等。对于引用类型,栈里的值就是一个地址,因此比较的是地址是否相同,而不是堆上的具体内容是否相同。equals比较的是两个引用类型的变量指向的堆中的内容是否相同。Methods字符串比较startsWith(String
str)(returntypeisboolean)endWith(String
str)(returntypeisboolean)字符串连接我们可以使用concat()方法连接两个字符串使用+连接两个或者多个字符串。Stringstr1="abc";Stringstr2="abe";Stringstr3="bf";Stringstr4=str1+str2+str3;Stringstr5=str1.concat(str2);Note:java语言区分大小写Stringstr1=“welcomtojava";booleanflag1=str1.startsWith(“welcom");booleanflag2=str1.endsWith(“Java");truefalseNote:java语言区分大小写Methods字符串转换(returntypeareString)toLowerCase()toUpperCase()replaceFirst(String
oldstring,String
newstring)replaceAll(String
oldstring,String
newstring)注意:转换后的结果保存在新的字符串中,对原有字符串没有任何改变。Stringstr1=“welcomtojava";Stringstr2=str1.replaceAll("java",“JSP");Stringstr3=str1.toUpperCase();System.out.println(str2);System.out.println(str3);welcomtoJSPWELCOMTOJAVASystem.out.println(str1);welcomtojavaThinkingtheresult!public
classTest{ public
static
void
main(String[]args){ Stringmessage="ABCD";
repalce(message);
System.out.println(message); } public
static
void
repalce(String
str){
str.replaceAll("A","B"); }}2010软件大赛试题:写出程序结果public
classTest{public
static
void
main(String[]args){Stringmessage="ABCD";repalce1(message);
System.out.println(message);Stringmessage2=replace2(message);System.out.println(message2);}public
static
voidrepalce1(Stringstr){
str.replaceAll("A","B");}public
staticStringreplace2(Stringstr){Stringr=str.replaceAll("A","B");returnr;}}2010软件大赛试题变形:写出程序结果Methods字符串查找indexOf(String
str)(returntypeisint)lastIndexOf(String
str)subString(intbegin)(returntypeisString)subString(int
beginIndex,int
endIndex)Stringstr=new
String("IlikeJava");inti1=str.indexOf("like");inti2=str.lastIndexOf("a");Stringstr1=str.substring(2,5);210likNote:截取的子串是从begin开始,到end-1结束Methods字符串和字符的转换charAt(intindex)char[]chrs=str.toCharArray();字符串长度length()Stringstr11=new
String("IlikeJava");charc=str11.charAt(2);char[]chrs=str11.toCharArray();intlength=str11.length();Methods字符串比较equals(String
str)startsWith(String
str)endWith(String
str)字符串连接+,concat()字符串转换toLowerCase()toUpperCase()replaceFirst(String
oldstring,String
newstring)replaceAll(String
oldstring,String
newstring)Methods字符串查找indexOf(String
str)lastIndexOf(String
str)subString(intbegin)subString(intbegin,intend)字符串和字符之间的转换charAt(intindex)char[]chrs=str.toCharArray();字符串长度length()参见实验指导书例程Example从一个字符串中截取具有指定特征的子串。Myemailisdqpilzg@163.com!Y…….参见实验指导书例程Stringmessage="Myemailisdqpilzg@163.com!Youcanmailtome.";intB=message.indexOf('!');Stringmessage2=message.substring(0,B);intA=message2.lastIndexOf('');Stringemail=message2.substring(A+1);System.out.println(email);(1)email在该字符串中以空格开始,以叹号结束.(2)该字符串中仅包含一个叹号BAmessage.substring(A+1,B);8.2StringBufferIntroductionString对象一旦创建后,它的值就不能再修改,比如插入、追加。如果要修改,只能重新赋值。凡是String可以使用的地方,都可以使用StringBuffer。StringBuffer更灵活,我们可以增加、插入和追加新的内容在缓冲区中。频繁修改字符串对象的值,对内存浪费很大。StringBuffer,也称为字符串缓冲区,可以实现长度可变和内容可变的字符序列。情况类似数组和ArrayList(数组一旦创建,长度固定,但是ArrayList的长度可以变化。)构造函数StringBuffer(String
str)E.g.StringBuffer
strBuffer=newStringBuffer(“abc”);字符串追加append(dataTypet)dataType:boolean、char、int、long、float、double、String、chr[]、object字符串插入insert(intindex,dataTypet)StringBufferb1=new
StringBuffer("Itis");b1.append("JDK");b1.append(2.0);StringBufferb2=new
StringBuffer("Itis");b2.insert(6,2.0);b2.insert(6,"JDK");Result:b1=b2=ItisJDK2.0字符串删除delete(int
begin_index,int
end_index)其他操作length()reverse()将字符串的内容按照从后往前的顺行进行颠倒Note:从begin开始,到end-1结束参见实验指导书例程Stringstr="12345";StringBuffer
b1=new
StringBuffer(str);StringBuffer
b2=strBuffer.reverse();b2.delete(0,1);System.out.println(“b2="+b2);543214321ExampleScannerscanner=new
Scanner(System.in);System.out.println("Pleaseinputthestring:");StringoldStr=scanner.nextLine();StringBuffer
oldBuffer=new
StringBuffer(oldStr);StringBuffer
newBuffer=oldBuffer.reverse();StringnewStr=new
String(newBuffer);if(oldStr.equals(newStr))
System.out.println(oldStr+"是回文字符串");else
System.out.println(oldStr+"不是回文字符串");public
classTest{ public
static
void
main(String[]args){
StringBuffera=new
StringBuffer("AA");
StringBufferb=new
StringBuffer("BB");
f(a,b);
System.out.println(a); } private
static
void
f(StringBufferx, StringBuffery){ x.append(y); }}2010软件大赛试题:写出程序结果8.3StringTokenizerStringstr="Friday;Monday;Sunday";FridayMondaySundayStringTokenizer也称字符分析器,使用分隔符进行字符串的分隔ConstructorStringTokenizer(Strings)使用默认的分隔符:空格、回车、Tab符StringTokenizer(Strings,Stringdelim)使用自定义分隔符MethodscountTokens()在要分析的字符串中,以分隔符为标记,统计有多少个子串nextToken()逐个获取子串hasMoreTokens()是否还有子串,如果有,返回true,否则返回falseExample分析字符串,输出单词的总数和每个单词参见实验指导书例程Stringstr="Friday;Monday;Sunday";StringTokenizer
stk=new
StringTokenizer(str,";");System.out.println("单词总数是:"+stk.countTokens());inti=0;while(stk.hasMoreTokens()){i++;Stringword=stk.nextToken();
System.out.println("第"+i+"个单词为:"+word);}使用StringTokenizer对象,对字符串str,按照分隔符”;”进行分隔总结字符串的内容一旦建立,该字符串所在堆上的内容就无法改变。比较字符串的内容是否相等,必须使用equals方法,而不能使用==操作符StringBuffer可以实现长度可变和内容可变的字符序列,方法有append,insert,delete,length,reverseStringTokenizer根据分隔符进行字符串的分割,在构造函数中可以定指定分隔符,方法有countTokens,nextToken,hasMoreTokens以下内容学生了解即可MethodsStringCompareequals(String
str)falseStrings1,s2,Strings3="abc",s4="abc";s1=new
String("abc");s2=new
String("abc");if(s1==s2)
System.out.println(“true");else
System.out.println(“false");if(s3==s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信息渠道培训-调查技巧培训教材
- 高压柜培训讲义
- 活动降落伞比赛课件教科版八年级上册
- 《幼儿舞蹈基础》 课件 项目八 蒙古族舞蹈
- 不良反应培训考卷
- 初二上思想品德考卷
- 北师大版小学英语一年级上册期末试卷含参考答案
- 2024届宁夏石嘴山市高三下学期三模考试物理试题(解析版)
- 2023年极轨气象卫星接收处理系统项目分析评估报告
- 2024钢支撑租赁合同
- 方太品牌燃气灶市场营销推广策划方案
- 简约表格个人简历模板-05
- 018-平刃剪切机剪切力计算
- 新冠核酸环境采样技术要点与常见问题PPT学习培训课件
- 部编版《道德与法治》三年级上册教材解析,教学必备精品资料
- 《中国哲学史》讲义教案
- 业主车辆临时出入证
- 小学STEAM教育“四步”整体推进机制策略-以四川省成都高新区实验小学为例
- 经典怀旧同学聚会PPT动态模板
- 重庆某高速公路合同段500KV超高压电塔及输电线路下路基爆破施工防护方案
- 青岛城园林绿化技术规范
评论
0/150
提交评论