高级语言程序设计Java

上传人:pu****.1 文档编号:587191938 上传时间:2024-09-05 格式:PPT 页数:39 大小:164KB
返回 下载 相关 举报
高级语言程序设计Java_第1页
第1页 / 共39页
高级语言程序设计Java_第2页
第2页 / 共39页
高级语言程序设计Java_第3页
第3页 / 共39页
高级语言程序设计Java_第4页
第4页 / 共39页
高级语言程序设计Java_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《高级语言程序设计Java》由会员分享,可在线阅读,更多相关《高级语言程序设计Java(39页珍藏版)》请在金锄头文库上搜索。

1、西南科技大学网络教育系列课程西南科技大学网络教育系列课程高级语程序设计高级语程序设计(Java)第六章数组与字符串高级语言程序设计高级语言程序设计(Java) http:/数组l数组是用来存储一组相同类型数据的数据结构,通过整形下标(从0开始)访问数组中的每一个元素。数组的声明inta;Stringstr;或inta;Stringstr;l数组元素的类型可以是任何数据类型。数组的创建使用new如:a=newint100;/下标从0到99l数组的声明和创建可以合在一起如:inta=newint100;高级语言程序设计高级语言程序设计(Java) http:/l数组是恒定的:数组一旦被创建,就不能

2、再改变它的大小。l数组不是静态的:数组的内存都是通过new动态分配的。ljava允许使用int变量来指定数组的大小。u如:intsize=20;doublea=newdoublesize;uinta5;错误,不能使用这种C语言的方式高级语言程序设计高级语言程序设计(Java) http:/数组的初始化l使用new创建一个数组时,java会自动给每一个数组元素赋一个默认的初值。u整型:0,浮点型:f或d,字符:0,布尔型:false,类对象:nulll在创建数组的同时,赋予初值uinta=1,2,3,4,5,6;a=newint1,2,3,4,5,6;/匿名数组高级语言程序设计高级语言程序设计(

3、Java) http:/使用数组的length属性llength是数组类中唯一的成员变量,数组被创建时系统会自动给length赋值。l通过length属性得到数组的元素数目。如:for(inti=0;ia.length;i+)System.out.println(ai);l不要使用创建数组时用于指定数组大小的整数作为循环结束的条件。for(inti=0;i6;i+)应该使用高级语言程序设计高级语言程序设计(Java) http:/拷贝数组l把一个数组变量拷贝给另一个inta=newint1,2,3,4,5,6;intb=a;b3=9;a和b都指向相同的数组这时,a3的值也是9l使用System

4、类的arraycopy()方法System.arraycopy(from,fromIndex,to,toIndex,count)uto数组必须有足够的空间来容纳拷贝的元素,否则造成数组越界:高级语言程序设计高级语言程序设计(Java) http:/publicclassArrayTestpublicstaticvoidmain(Stringargs)inta=newint1,2,3,4,5,6;intb=newint111,222,333,444,555,666;System.arraycopy(a,2,b,1,3);for(inti=0;ib.length;i+)System.out.pri

5、ntln(b+i+=+bi);对数组的操作,是对下标的操作高级语言程序设计高级语言程序设计(Java) http:/对数组排序l使用Arrays类的sort方法ustaticvoidsort(数据类型数组名)uArrays.sort(被排序的数组名)lsort方法采用了优化的快速排序算法高级语言程序设计高级语言程序设计(Java) http:/importjava.util.*;publicclassArraySortspublicstaticvoidmain(Stringargs)inti;Stringtest=How,many,numbers,do,you,need,to,draw,?;A

6、rrays.sort(test);for(i=0;itest.length;i+)System.out.print(testi+t);?Howdodrawmanyneednumberstoyou高级语言程序设计高级语言程序设计(Java) http:/二维数组使用多个下标访问数组元素l二维数组的创建使用new操作是从最高维开始,分别为每一维分配内存。inta=newint35l二维数组也可以直接以初始化的方式来创建数组inta=1,2,3,4,5,2,3,4,5,6,3,4,5,6,7高级语言程序设计高级语言程序设计(Java) http:/字符串概述lJava中没有内置的字符串数据类型,而是

7、在标准库中包含预定义的字符串类。l字符串是字符的序列,字符串中字符的位置从0开始计算。l程序中需要用到的字符串可以分为两大类,一类是创建之后不会再做修改和变动的字符串常量String类;另一类是创建之后允许再做更改和变化的字符串变量StringBuffer类。lStringTokenizer类侧重于对字符串的分割。高级语言程序设计高级语言程序设计(Java) http:/String类vJava使用包中的String类来创建一个字符串变量,因此字符串变量是类类型变量,是一个对象。字符串常量l使用“”定义字符串,使用定义字符。lJava会自动为字符串常量生成一个String类的对象,所以可以直接

8、初始化String对象,如:strings=“HelloWorld!”高级语言程序设计高级语言程序设计(Java) http:/创建字符串对象l使用String类,可以很方便的创建一个字符串对象。格式:String字符串对象名=newString(“字符串值”);Strings=newString(wearestudents);Stringtom=String(s);lString类有11个构造方法,详细情况可以参看JDK的帮助文档(jdk-1_5_0-doc.zip)。u下载地址:高级语言程序设计高级语言程序设计(Java) http:/lString是恒定的:所有操作都不会改变原Strin

9、g对象,是将操作的结果以一个新的对象返回。publicclassStringerStaticStringupcase(Strings)returns.toUpperCase();publicstaticvoidmain(Stringargs)Stringq=newstring(“hello”);System.out.println(q);Stringqq=upCase(q);System.out.println(qq);System.out.println(q);输出输出:hello输出输出:HELLO输出输出:hello高级语言程序设计高级语言程序设计(Java) http:/String类

10、的常用方法Stringstr1=“hello,java!”;System.out.println(str1.length();Stringstr2=“你好,java!”;System.out.println(str2.length();输出:12输出:8lpublicintlength():获取字符串的长度。高级语言程序设计高级语言程序设计(Java) http:/l字符串比较比较过程:如果当前字符串与s完全相同,该方法返回值0;如果当前字符串中某个位置上的字符大于s字符串中对应位置的字符,compareTo方法返回正值,反之则compareTo方法返回负值。u用compareTo()方法,按

11、字典顺序比较publicintcompareTo(Strings)多数情况下比较字符在Unicode编码表中的位置。字符串长度不等且其中一字符串是另一字符串的子串时,则比较长度。高级语言程序设计高级语言程序设计(Java) http:/publicclassCompareTestpublicstaticvoidmain(Stringargs)Stringstr1=newString(helloworld);Stringstr2=newString(hello);System.out.println(pareTo(str2);Stringstr3=newString(helle);System.

12、out.println(pareTo(str1);System.out.println(pareTo(str3);Stringstr4=newString(Helle);System.out.println(pareTo(str4);输出:5输出:-10输出:10输出:32高级语言程序设计高级语言程序设计(Java) http:/u不要用“=”来检测两个字符串是否相等,它只能判断两个字符串是否存储在同一位置。uequals()方法用来判断两个字符串是否相同。publicbooleanequals(Strings)l字符串连接u使用concat()方法publicStringconcat(Str

13、ingstr)u使用符号+Stringstr3=str1.concat(str2);System.out.println(str3);Stringstr1=“123”;Stringstr2=“456”;Stringstr3=str1+str2;System.out.println(str3);123456高级语言程序设计高级语言程序设计(Java) http:/l提取部分字符串ucharAt()方法:提取index位置上的一个字符。publiccharcharAt(intindex)usubString()方法:获取子串publicStringsubstring(intbeginIndex)p

14、ublicStringsubstring(intbeginIndex,intendIndex)高级语言程序设计高级语言程序设计(Java) http:/Stringstr=newString(“hello”);str=str.subString(0,4)+”!”System.out.println(str);Stringstr=newString(“helloworld”);str=str.subString(0,5)+”+str.subString(6)+”!”System.out.println(str);结果:hell!结果:hello world !高级语言程序设计高级语言程序设计(J

15、ava) http:/l去掉字符串前后的空格lpublicStringtrim()Stringstr3=“123System.out.println(str3.trim();输出:123字符串与基本数据的相互转换l“数字”格式的字符串可以转化为相应的基本数据类型。lByte、Short、Integer,Long、Float、Double类调相应的类方法来实现转换。高级语言程序设计高级语言程序设计(Java) http:/upublicstaticbyteparseByte(Strings)upublicstaticshortparseShort(Strings)upublicstaticint

16、parseInt(Strings)upublicstaticlongparseLong(Strings)upublicstaticdoubleparseDouble(Strings)upublicstaticdoubleparseDouble(Strings)Stringstr=“1234”intn=Integer.parseInt(str);n的值为1234高级语言程序设计高级语言程序设计(Java) http:/l使用String类的类方法valueOf()将数字转化为字符串。upublicStringvalueOf(byten)upublicStringvalueOf(intn)upub

17、licStringvalueOf(longn)upublicStringvalueOf(floatn)upublicStringvalueOf(doublen)doublenum=1234.56;System.out.println(String.valueOf(num);输出为高级语言程序设计高级语言程序设计(Java) http:/l对象的字符串表示uObject类有一个public方法toString(),一个对象通过调用该方法可以获得该对象的字符串表示。publicclassDataToStringpublicstaticvoidmain(Stringargs)DataToString

18、obj=newDataToString();System.out.println(obj.toString();System.out.println(Integer.toString(50);System.out.println(newDouble(50.123).toString();DataToStringad3ba450高级语言程序设计高级语言程序设计(Java) http:/StringBuffer类vStringBuffer类能创建可修改的字符串序列。StringBuffer类的构造方法lStringBuffer():创建空的StringBuffer对象,初始化缓冲区为16字符的长度

19、。lStringBuffer(intlen):创建指定字符缓冲区长度len的StringBuffer对象。lStringBuffer(Stringstr):创建具有初值为字符串str的StringBuffer对象,除去给定的字符串str所占的空间外,还提供16个字符的空间。高级语言程序设计高级语言程序设计(Java) http:/StringBuffer类的常用方法l获取StringBuffer对象的长度与容量信息。upublicintlength():获得当前字符串缓冲区中所包含的字符数。upublicintcapacity():获得当前字符串缓冲区的容量大小。高级语言程序设计高级语言程序设

20、计(Java) http:/publicclassBufferStringspublicstaticvoidmain(Stringargs)StringBufferstrb1=newStringBuffer();StringBufferstrb2=newStringBuffer(25);StringBufferstrb3=newStringBuffer(Thisisjava!);System.out.print(strb1.length()+t);System.out.print(strb1.capacity()+n);System.out.print(strb2.length()+t);Sy

21、stem.out.print(strb2.capacity()+n);System.out.print(strb3.length()+t);System.out.print(strb3.capacity()+n);0 016160 0252514143030高级语言程序设计高级语言程序设计(Java) http:/lStringBuffer对象的字符串扩充uappend方法可以将其它Java类型数据转化为字符串后,再追加到StringBuffer对象中。uinsert方法将一个字符串插入另一个字符串中,并返回当前对象的引用。u无论是扩充还是插入字符串,只要字符串缓冲区的长度充足,缓冲区的长度就

22、不会变。u当附加或插入字符串而使得字符串缓冲区容量不足时,系统会自动分配更多的空间。高级语言程序设计高级语言程序设计(Java) http:/lpubliccharcharAt(intindex)u得到参数n指定的置上的单个字符。un的值必须是非负的,并且小于当前对象实体中字符串序列的长度。lpublicvoidsetCharAt(intindex,charch)u将当前StringBuffer对象实体中的字符串位置n处的字符用参数ch指定的字符替换。un的值必须是非负的,并且小于当前对象实体中字符串序列的长度。高级语言程序设计高级语言程序设计(Java) http:/lStringBuffe

23、rdelete(intstartIndex,intendIndex)u从当前StringBuffer对象实体中的字符串中删除一个子字符串,并返回当前对象的引用。u要删除的子字符串从startIndex到endIndex-1。publicclassBufferStringspublicstaticvoidmain(Stringargs)StringBufferstrb1=newStringBuffer(Thisisjava!);StringBufferstrb2=strb1.delete(1,3);System.out.println(strb1);System.out.println(strb

24、2);System.out.println(strb1.delete(1,3);Ts is java !Ts is java !Tis java !高级语言程序设计高级语言程序设计(Java) http:/StringTokenizer类StringTokenizer类的构造方法lStringTokenizer(Strings):为字符串s构造一个分析器,使用默认的分隔符集合(如:空格符、换行符、Tab符等)。lStringTokenizer(Strings,Stringdelim):为字符串s构造一个分析器,是用参数delim指定的字符作为分隔符。lStringTokenizer(Strin

25、gs,Stringdelim,booleanreturnDelims):使用delim提供的参数作为分隔符,当returnDelims为true是,将分隔符作为标识返回。高级语言程序设计高级语言程序设计(Java) http:/使用StringTokenizer对象lStringnextToken():逐个获取字符串中的语言符号(单词),每当调用nextToken()时,都将在字符串中获得下一个语言符号,通常用while循环来逐个获取语言符号。lhasMoreTokens():用于控制循环,只要字符串中还有语言符号,该方法就返回true,否则放回false。lcountTokens():获得字

26、符串中一共有多少个语言符号。高级语言程序设计高级语言程序设计(Java) http:/importjava.util.*;publicclassExamplepublicstaticvoidmain(Stringargs)Strings=wearestud,ents;StringTokenizerfenxi=newStringTokenizer(s,);/空格和逗号做分intnumber=fenxi.countTokens();while(fenxi.hasMoreTokens()Stringstr=fenxi.nextToken();System.out.println(str);Syste

27、m.out.println(还剩+fenxi.countTokens()+个单词);System.out.println(s共有单词:+number+个);高级语言程序设计高级语言程序设计(Java) http:/正则表达式正则表达式与模式匹配l正则表达式u一个正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称作正则表达式中的元字符。比如:“dok”就是一个正则表达式,其中d就是有特殊意义的元字符,代表0到9中的任何一个。u一个正则表达式也称作一个模式。u和一个模式匹配的字符串称作匹配模式字符串,也称作模式匹配字符串。字符串“9ok”和“1ok”都是模式匹配字符串高级语言程序设计高级

28、语言程序设计(Java) http:/l模式匹配u模式匹配就是检索和指定模式匹配的字符串。u进行模式匹配的类在包中。u建立模式对象publicstaticPatterncompile(Stringregex)publicstaticPatterncompile(Stringregex,intflags)如果参数patter指定的正则表达式有错,complie方法将抛出异常:PatternSyntaxException。Patternpatter=Ppile(Ad);高级语言程序设计高级语言程序设计(Java) http:/参数flags可以取下列有效值:Pattern.CASE_INSENSI

29、TIVE:不区分大小写模式。:多行模式,在输入序列的开头和结尾处匹配:dotall模式:Unicode的大小写模式。Pattern.CANON_EQ:规范等价模式。表达式au030A将与字符串?匹配。默认情况下,匹配不考虑采用规范等价。高级语言程序设计高级语言程序设计(Java) http:/u建立匹配对象模式对象调用matcher(CharSequenceinput)方法返回一个匹配对象(Matcher)。input:要匹配的字符序列。u用于匹配的方法publicbooleanfind():寻找input中和patter匹配的下一子序列,如果成功该方法返回true,否则返回false。pub

30、licbooleanmatches():判断input是否完全和patter匹配。判断从input的开始位置是否有和patter匹配的子序列。高级语言程序设计高级语言程序设计(Java) http:/元字符模式l在正则表达式(模式)中可以使用一对方括号包括若干个字符,代表方括号中的任何一个字符将用于匹配。l例如:patter=“159ABC”,那么“1ABC”、“5ABC”和“9ABC”都是和模式patter匹配的字符序列。l方括号模式的一些意义如下:abc:a、b、c中的任何一个。abc:a、b、c以外的任何字符。a-d:a至d中的任何一个。高级语言程序设计高级语言程序设计(Java) http:/l代表单个字符的元字符元字符 在正则表达式中的写法 意义 .“.”代表任何一个字符 d“d”代表0至9的任何一个数字 D“D”代表任何一个非数字字符 s“s”代表空格类字符, t、n、x0B、f、r S“S”代表非空格类字符 w“w”代表可用于标识符的字符W“W”代表不能用于标识符的字符

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号