




已阅读5页,还剩63页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一维数组 (1) 一维数组:一系列匿名变量集合。 声明方式为: type arrayName ; 例如: int intArray ; char c; 声明了一个整型(字符)数组,数组中的每个 元素为整型(字符)数据。 声明时 中不写出数组个数。 5.1 5.1 数组数组 定义一个复合类型的数组,例如: Date dateArray ; 声明了一个容纳复合数据类型Date的数组。 或 String s; 1、一维数组 5.1 5.1 数组数组 也可以放在中间 type arrayName; 对于以上举出的例子,我们也可以这样定义: int intArray; Date dateArray; 1、一维数组 5.15.1数组数组 数组定义之后,必须经过初始化才可以引用。 数组的初始化分为静态初始化和动态初始化 静态初始化:在定义数组的同时对数组元素进行初 始化。例如: int number =1,2,3,4; /定义了一个含有4个 元素的int型数组。 (2) 一维数组的初始化 5.1 5.1 数组数组 动态初始化:使用运算符new为数组分配空间, type arrayName =new typearraySize; 例:char c; c=new char12; 或: char c=new char12; 1、一维数组 5.15.1 数组数组 1、一维数组 5.15.1 数组数组 a数组cbcdefghijkl C0=a; C1=b; C2=c; C3=d; C4=e; C5=f; C6=g; C7=h; C8=I; C9=j; C10=k; C11=l; int number =1,2,3,4; 1 数组 number 234 对于复合类型的数组,需要经过两步空间分配。 首先: type arrayName =new typearraySize; 然后:arrayName0=new type(paramList); arrayNamearraySize-1=new type(paramList); 例: date d=new date10; d0=new date(2007,5,20); d1=new date(2007,5,21); 1、一维数组 5.1 5.1 数组数组 例如: String stringArrary; /定义一个String类型的数组 stringArray = new String3; /给数组stringArray 分配3个应用空间,初始化每个引用值为null stringArray0=new String(“how”); stringArray1=new String(“are”); stringArray2=new String(“you”); 初始化各数组元素 1、一维数组 5.1 5.1 数组数组 1、一维数组 5.1 5.1 数组数组 Length:3 (b) stringArray (a) stringArray Length:3 stringArray howareYou Point类定义如下: class Point int x, y; Point ( int x1, int y1) x = x1; y = y1; Point() this(0, 0); 5.1 5.1 数组数组 Point类数组定义如下: Point Points ; Points = new Point 100; Points0=new Point(); Points1=new Point(20,5); 5.1 5.1 数组数组 points (a) Points Length:100 (b) points Length:100 X: Y: (c) 5.1 5.1 数组数组 (3) 一维数组的边界 当定义了数组,并用分配了内存空间后,就可 以引用数组中的每一个元素了。 arrayNameindex index为数组下标,可以是整型常数或表达式 ,如:arrayName1, arrayNamei, arrayName6*i等。下标是0序的,即从0开始 ,一直到数组长度减1。 1、一维数组 5.1 5.1 数组数组 另外,与C、C+中不同,Java有一个属性 length指明它的长度,例如: intArray.length指明数组intArray的长度。 字符串是方法: s.length(); 5.1 5.1 数组数组 public class ArrayTest public static void main( String args ) int i; int a = new int5; for( i=0; i=0; i- ) System.out.println(“a“+i+“ = “+ai); 该程序对数 组中的每个 元素赋值, 然后按逆序 输出。 1、一维数组 5.1 5.1 数组数组 运行结果为: C:java ArrayTest a4 = 4 a3 = 3 a2 = 2 a1 = 1 a0 = 0 1、一维数组 5.1 5.1 数组数组 1、数组的拷贝 5.1 5.1 数组数组 public class ArrayCopy public static void main(String args) int source=1,2,3,4,5; int target=new int7; System.out.println(“source:“); for(int i=0;isource.length;i+) System.out.print(sourcei+“ “); System.arraycopy(source,0,target,0,5); 1、数组的拷贝 5.1 5.1 数组数组 System.out.println(“ntarget:“); for(int i=0;itarget.length;i+) System.out.print(targeti+“ “); target1=10; target6=50; System.out.println(“nAfterchange: target“); for(int i=0;itarget.length;i+) System.out.print(targeti+“ “); 多维数组都被看作数组的数组。 比如二维数组是一个特殊的一维数组,其 每一个元素又是一个一维数组。 主要以二维数组为例来说明,高维数组与 此类似。 2、多维数组 5.1 5.1 数组数组 (1) 二维数组的定义方式 type arrayName ; 例如: int intArray ; 也可以采用另一种定义方式: type arrayName; 与一维数组一样,这时对数组元素也没有分配 内存空间,同样要使用运算符new来分配内存 ,然后才可以访问每个元素。 3、二维数组 5.1 5.1 数组数组 (2) 二维数组的初始化 二维数组的初始化也分为静态和动态两种。 静态初始化:在定义数组的同时为数组分配空 间。 int intArray =1,2,2,3,3,4; 不必指出数组每一维的大小,系统会根据初始化 时给出的初始值的个数自动算出数组每一维的 大小。 3、二维数组 5.1 5.1 数组数组 动态初始化:对高维数组来说,分配内存空间有 下面两种方法: 1.直接为每一维分配空间,如: type arrayName =new typearraylength1arraylength2 例如: int a =new int23; 3、二维数组 5.1 5.1 数组数组 2.从最高维开始(而且必须从最高维开始) ,分别为每一维分配空间,如: String s =new String2 ; s0=new String2; s1=new String2; s00=new String(“Good”); s01=new String(“Luck”); s10=new String(“to”); s11=new String(“you”); 3、二维数组 5.1 5.1 数组数组 (3) 二维数组的引用 对二维数组中每个元素,引用方式为: arrayNameindex1index2 其中index1和index2为数组下标,为整型常数和表 达式,都是0开始的。 3、二维数组 5.1 5.1 数组数组 (4) 二维数组数组长度 对二维数组的长度也使用length方法 int A =new int 3 2; int x= A.length ; int m=A0.length; int n=A1.length; int w=A2.length; 3、二维数组 5.1 5.1 数组数组 (4) 二维数组数组长度 对二维数组的长度也使用length方法 int A =new int 3 ; int x= A.length ; 3、二维数组 5.1 5.1 数组数组 (4) 二维数组数组长度 对二维数组的长度也使用length方法 int A =new int 3 ; A0=new int 4; A1=new int 5; A2=new int 2; 3、二维数组 5.1 5.1 数组数组 int A =new int 3 ; A0=new int 4; int m=A0.length; A1=new int 5; int n=A1.length; A2=new int 2; int w=A2.length; 3、二维数组 5.1 5.1 数组数组 A0 A1 A2 A3 Object A=new Object5; A0=new Object(); A1=new Empoloyee(); A2=new Manager(); 4、异类集合 5.1 5.1 数组数组 字符串:在Java中把字符串看作是类的对象 字符串是有序的字符序列, 它的最基本元素是字符,一个字符可以是 字母、数字、标点符号或其它的符号 5.2 5.2 字符串字符串 在Java中有两种类型的字符串: 一种是创建以后不能改变的字符串常量, String类用于存储和处理字符串常量; 一种字符串是创建以后,可对其进行各种 修改操作的字符串变量,StringBuffer类用 于存储和操作字符串变量。 5.2 5.2 StringString类类 String类是系统已定义的类,已定义了串构 建器和常用方法; String s=“abc”; 5.2 5.2 StringString类类 String类的构造方法 1. 无参构建器String() 创建一个空字符串;String s=new String(); 2. 用一个现有的字符串来创建新对象,一般格式: String(字符串参数); String s = new String(“abc“); String s1 = new String(s); 5.2 5.2 StringString类类 2 用字符型数组来创建新对象; String(char); String(char,int offset, int length); offset表起始位置, length表字符个数,如: char charArray = H,e,l,l,o; String s1 = new String(charArray); String s2 = new String(H,e,l,l,o); char Array =H,e,l,l,o,J,a,v,a; String s3 = new String(Array, 5,4); /生成串 “Java” 5.2 5.2 StringString类类 3 用字节型数组来创建新对象 常用两种情况: String(byte); String(byte,int offset, int length); offset表起始位置, length表字符个数,例如: byte bs = new byte26; /定义字节数组 for (int i =0;i26;i+) /为字节数组赋值 bsi= (byte) (65+i) ; String s1 = new String(bs); String s3 = new String(bs, 7,4); /生成串 “HIJK” 1. public int length( ) 1. 用法:用于返回一个串对象的长度。 如, 2. String s1= “Hello”; String s2= “欢迎光临!”; System.out.println(s1.length()+“t“+ s2.length(); 思考:两个串长度输出结果? 获取字符串长度 ! ? 5.3 5.3 StringString类常用的方法类常用的方法 1. 字符串大小写转换 public String toLowerCase() public String toUpperCase() 用法:用来把字符串的每个字符转换成大写或小 写,如, String s= “Hello” ,s1,s2; s1=s.toUpperCase( ); /转化为大写并生成新串 s2=s.toLowerCase( ); /转化为小写并生成新串 字符串编辑 5.3 5.3 StringString类常用的方法类常用的方法 2. 字符串替换 public String replace(char old,char new) 用法:把字符串中的所有old字符都转换成 new字符,如, String s1= “Hello”; String s2= s1.replace(H,Y); 替换后的新串赋值给s2,s1并没改变串 字符串编辑 5.3 5.3 StringString类常用的方法类常用的方法 3. 字符串替换删除首尾空格 public String trim() 用法:去掉字符串的首尾空格,返回剪裁后 的字符串,如, String s1= “ Hello ”; String s2= s1.trim(); 删除首尾空格后赋值给s2,s1并没改变 字符串编辑 5.3 5.3 StringString类常用的方法类常用的方法 4. 字符串连接 public String concat() 用法:用法:实现两个字符串连接,如, String s1= “ Hello ”, s2= “java”; String s3= s1.concat(s2); s2+s1赋值给s3 字符串编辑 5.3 5.3 StringString类常用的方法类常用的方法 注意 前面所介绍的四个方法都是对当前字符串对象 进行各种编辑修改,好象与前面介绍的“String对 象不能改变” 相抵触 其实,前面的四个方法并没有直接修改当前字 符串, 而是返回一个新串,如, “Hello”. toUpperCase( ),将生成一个新串 “HELLO”, 并没有修改原串 1. 截取字符串 public String substring(int begin, int end) public String substring(int begin) String s1= “This is a string“; String s2= s1.substring(0,4); 从s1的第0个字符到第4个字符,截取子串 “This “ String s3= s1.substring(10); 从s1的第10个字符到末尾,截取子串“string“ 字符串的检索与截取 2. 取字符 public char charAt(int i); 用法:返回值是字符,返回字符串中第i个字符 ,如, String s= “This is a string“; char ch= s1.charAt(1); 返回s中第个字符 字符串的检索与截取 3. 字符检索 public int indexOf(char ch); public int indexOf(char ch, int fromIndex); 用法:返回值为检索到的ch所在的位置,如果 没检索到,返回值-1。 String s1= “This is a string“; i nt i=s1.indexOf(i); /返回值为2 int j=s1.indexOf(i, 5); /返回值为5 字符串的检索与截取 4. 判断字符串的前缀和后缀 public boolean startsWith(String prefix) public boolean endsWith(String suffix) 用法: 用来判断一个串的前缀是和后缀。如, String s= “This is a string“; boolean start=s. startsWith (“This“); true boolean ebd=s. endsWith (“string“); true 字符串的检索与截取 1. public int compareTo(String aString) 用法:按词典顺序比较两个字符串,返回值 为int类型,从第一个字符开始依次将两个串 中的字符进行比较,比较字符编码的大小。 如s1. compareTo(s2),如果返回负值,该 串比参数中的串要小;如果为正数,该串比 参数中的串要大;若为0,则表示两串相等 字符串比较 5.3 5.3 StringString类常用的方法类常用的方法 1. public boolean equals(String str); 用法:比较两个字符串对象的内容是否相等 2. public boolean equalsIgnoreCase(String str) ; 用法:比较两个字符串对象的内容是否相等, 比较时忽略大小写。 字符串比较 5.3 5.3 StringString类常用的方法类常用的方法 【例】字符串比较 class StringEquals public static void main(String args ) String s1=“Hello“; String s2=“Hello“; String s3=“HELLO“; String s4=“Java“; prt(s1+“ length “+s1.length(); prt(s4+“ length “+s4.length(); prt(s1+“ equals “+s2+“ : “+s1.equals(s2); prt(s1+“ equals “+s3+“ : “+s1.equals(s3); prt(s1+“ equalsIgnoreCase “+s3+“ :“ +s1.equalsIgnoreCase(s3); prt(s1+“ equalsIgnoreCase “+s4+“ : “ +s1.equalsIgnoreCase(s4); public static void prt(String s) System.out.println(s); 【例】 String类的方法举例 public class StringMethod1 public static void main(String args) String s1= “welcome you “; String s2= “ JAVA WORLD.“; ptr(“Length of s is “+ s1.length(); String s = s1.concat(s2); ptr(s); String sub1 = s1.substring(7); System.out.println(sub1.trim().equals(“you“); ptr(s1.toUpperCase(); ptr(s2.toLowerCase(); public static void ptr(Object o) System.out.println(o); /定义类的方法,用来输出,使程 序更简练 /输出s1的长度 /合并串s1,s2为新串s并输出 /截取子串,从s1第7个字符开始 /两个串是否相等 5.4 5.4 字符串与基本类型之间的转换字符串与基本类型之间的转换 1 将字符串转换成基本类型数据 是指把字符串类型的数值,如“3.14”转换成真正 的数值3.14; 通过各个基本类型的类方法parseXXX来实现的 该方法的格式是“类名. parse类名(String类数值 )”,如果字符串表示的不是合法的数字,会出 错。 5.4 5.4 字符串与基本类型之间的转换字符串与基本类型之间的转换 1 将字符串转换成基本类型数据 如: byte result = Byte.parseByte(“24“); short result = Short.parseShort(“-234“); int result = Integer.parseInt(“456“); long result = Long.parseLong(“123456“); float result = Float.parseFloat(“2.15“); double result = Double.parseDouble(“3.14159265“); 5.4 5.4 字符串与基本类型之间的转换字符串与基本类型之间的转换 2将基本类型数据转换成字符串 如把数值(如3.14)转换成字符串类型; 通过String的类方法valueOf来实现,该方法有 多个重载,一般形式为:s.valueOf(parament) 参数parament可以是各种基本类型包括Boolean 型,如: String s= String.valueOf(3.14); 【例】 字符串转化为基本类型数据 public class transform public static void main(String args) byte a = Byte.parseByte(“24“); short b = Short.parseShort(“-234“); int c = Integer.parseInt(“456“); long d = Long.parseLong(“123456“); float e = Float.parseFloat(“2.15“); double f = Double.parseDouble(“3.14159265“); System.out.println(“Result =“ + a+“ “ + b+“ “+ c +“ “+ d+“ “+ e+“ “ +f); 【例】 基本类型向字符串转换 public class transform public static void main(String args) String s = “ ; s += String.valueOf(byte)1); s += String.valueOf(short)2); s += String.valueOf(int)3); s += String.valueOf(long)4); s += String.valueOf(char)32); s += String.valueOf(12.34); s += String.valueOf(%); s += String.valueOf(56.76D); System.out.println(s); 5.5 5.5 StringBuffer类字符串字符串 String类表示的字符串其内容不能修改,长度 也是确定,相当于字符串常量 Java还提供了一个StringBuffer类,StringBuffer 类字符串 相当于字符串变量; 在程序运行中可对字符串内容进行添加、插入、 替换等操作 1. StringBuffer() 创建一个空字符串 2. StringBuffer(int length) 创建一个容量为length的空字符串,当前长度为0 StringBuffer(String str) 利用已有的String对象创建一个字符串 StringBuffer三个构造方法 1. 使用new运算符调用构造方法 String s=new String(“I like Java”); StringBuffer sb=new StringBuffer(“Just do it!”); 创建字符串对象方法 创建起来的StringBuffer类对象,除了分配实际串 的长度,还另外分配16个字节的缓冲区, StringBuffer类提供了2个不同的方法用来检测实际 串的长度以及串对象的容量: capacity( ) /返回字符串缓冲区的当前容量 length() /返回字符串缓冲区的长度 (字符数 ) 特别提醒: 【例】演示StringBuffer字符串长度测试 class StringBLength public static void main(String args ) StringBuffer sb=new StringBuffer(“Hello Java“); StringBuffer sb1=new StringBuffer(“Java“); prt(sb+“tlength : “+sb.length(); prt(sb+“tcapacity: “+sb.capacity(); prt(sb1+“ttlength : “+sb1.length(); prt(sb1+“ttcapacity: “+sb1.capacity(); prt(“String: “+sb1.toString(); public static void prt(String s) System.out.println(s); 【例】演示StringBuffer字符串长度测试 equals( ) length ( ) charAt ( ) substring ( ) replace ( ) 注意 String类和StringBuffer类的replace ( )
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 语文名校试题及答案高中
- 营养内的社会平等问题探讨试题及答案
- 江门事业单位试题及答案
- 西医临床考生如何调整心态迎接考试试题及答案
- 有限空间测试题及答案
- 迎接2024年信息系统项目管理师考试挑战试题及答案
- 药物研发领域的职业机会试题及答案
- 辅导员招聘考试内容解读及技巧试题及答案
- 激光工程师备考注意事项试题及答案
- 跟踪研究2025年计算机二级考试试题及答案
- 膜系设计结构及调试
- 35kv配电系统继电保护方案设计(共33页)
- 中国收藏家协会个人会员入会申请表
- 文件模板(平行文)
- 漱口水公司绩效计划(范文)
- Theme and Rheme 主位与述位(课堂PPT)
- 压力容器设计计算书
- 尿毒症脑病ppt课件
- 部编版四年级下册语文课件-第三单元-单元解读-共64张PPT)
- 医院处方笺模板
- 公司部门职能介绍
评论
0/150
提交评论