常用的Java系统类.ppt

上传人:本田雅阁 文档编号:3440353 上传时间:2019-08-26 格式:PPT 页数:45 大小:274.54KB
返回 下载 相关 举报
常用的Java系统类.ppt_第1页
第1页 / 共45页
常用的Java系统类.ppt_第2页
第2页 / 共45页
常用的Java系统类.ppt_第3页
第3页 / 共45页
常用的Java系统类.ppt_第4页
第4页 / 共45页
常用的Java系统类.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《常用的Java系统类.ppt》由会员分享,可在线阅读,更多相关《常用的Java系统类.ppt(45页珍藏版)》请在三一文库上搜索。

1、Java语言与JBuilder应用初步 第六章 常用的Java系统类,本章要点,字符串类 数值(Number)类及其子类 数组类 集合类 Object类,字符串类,字符串是编程中很常用的数据类型 Java语言提供两种字符串类用来实现字符串操作: String类:用于字符串常量,也就是说字符串的值不会改变 StringBuffer类:用于字符串变量,也就是说字符串的值可以改变,字符串类,字符串的使用例题 例:将输入的字符串颠倒。 public class StringsDemo public static void main(String args) String palindrome = “僧

2、游云隐寺“; int len = palindrome.length(); StringBuffer dest = new StringBuffer(len); for (int i = (len - 1); i = 0; i-) dest.append(palindrome.charAt(i); System.out.println(dest.toString(); ,字符串类,String对象的其它产生方法 / 生成一个空的字符串 String myStr = new String(); / 复制String对象的内容 String oldStr = “东岳泰山“; String mySt

3、r1 = new String(oldStr); /复制StringBuffer对象的内容 StringBuffer oldStr2 = new StringBuffer(“西岳华山“); String myStr2 = new String(oldStr2); /复制字符数组的内容 char oldStr3 = 南, 岳, 衡, 山; String myStr3 = new String(oldStr3);,字符串类,StringBuffer对象的产生 只能用new关键字产生,有3种构造方法: / 生成一个空的字符串,这个字符串的初始容量为16个字符,但以后可以扩展 StringBuffer

4、 myStrBuf1 = new StringBuffer(); / 生成一个空的字符串,这个字符串的初始容量由length指定。 / 在本例中,字符串的初始容量为120个字符。 int length = 120; StringBuffer myStrBuf2 = new StringBuffer(length); / 复制String对象中的内容 String str = “北岳恒山“; StringBuffer myStrBuf3 = new StringBuffer(str);,字符串类,字符串长度和字符串容量 如果StringBuffer对象要存放的字符数大于它的容量,StringBu

5、ffer对象会自动扩大字符串容量,以放下更多的字符 myStrBuf1.append(“东岳泰山、西岳华山、南岳衡山、北岳恒山、中岳嵩山“); System.out.println(myStrBuf1.capacity(); 程序显示结果: 34,字符串类,字符串的访问操作 length()函数:获取字符串的长度 适用于String对象和StringBuffer对象 String myStr = “僧游云隐寺“; StringBuffer myStr2 = new StringBuffer(“五岳归来不看山“); int strlen1 = myStr.length(); int strlen

6、2 = myStr2.length(); 变量strlen1中保存myStr的长度,值为5 变量strlen2中保存myStr2的长度,值为7,字符串类,字符串的访问操作 capacity函数:得到字符串容量 仅适用于StringBuffer对象 charAt()函数:获得字符串中的某个字符 适用于String对象和StringBuffer对象 char myChar1, myChar2; String myStr = “僧游云隐寺“; StringBuffer myStr2 = new StringBuffer(“五岳归来不看山“); myChar1 = myStr.charAt(0); m

7、yChar2 = myStr2.charAt(6);,字符串类,字符串的访问操作 要循环获得字符串里的所有字符,循环应当从0开始,直到字符串长度-1为止 StringBuffer myStr2 = new StringBuffer(“五岳归来不看山“); for (int i = 0; i myStr2.length(); i+) System.out.println(myStr2.charAt(i); ,字符串类,字符串的访问操作 substring函数:获得字符串的子串 String substring(int start); 返回从start指定的位置开始(包括这个字符),直到整个字符串

8、终了的所有子串 String substring(int start, int end); 返回从start开始(包括这个字符),直到end为止(不包括这个字符)的子串,字符串类,字符串的访问操作 例1: StringBuffer myStr2 = new StringBuffer(“五岳归来不看山“); String subStr = myStr2.substring(2); substring首先在字符串中寻找索引为2的位置,就是“归”字,包括“归”字之后的所有字符都包括在子串内,最后返回的子串subStr为“归来不看山”,如下图所示,字符串类,字符串的访问操作 例2: StringBuf

9、fer myStr2 = new StringBuffer(“五岳归来不看山“); String subStr = myStr2.substring(2, 6); 首先寻找索引2的字符,就是“归”字,以此为开始字符;再寻找索引6的字符,就是“山”字,以它之前的“看”字为结尾字符,返回的子串subStr为“归来不看”,如下图所示,字符串类,字符串的访问操作 substring允许第二个参数的值等于字符串长度,也就是说,myStr2.substring(2, 7)是可以接受的,substring函数认为这表示字符串的结尾,但第二个参数不能大于字符串长度。 myStr2.substring(2, 7

10、)返回的结果是“归来不看山”,如下图所示:,字符串类,字符串的访问操作 indexOf和lastIndexOf函数:搜索字符位置 适用于String对象和StringBuffer对象 indexOf函数的作用是从前往后搜索字符第一次出现的位置 lastIndexOf函数的作用是从后往前搜索字符第一次出现的位置 indexOf和lastIndexOf函数有很多种用法,字符串类,字符串的访问操作 indexOf的使用例题: public class StringDemo public static void main(String args) String str1 = “东岳泰山、西岳华山、南岳

11、衡山、北岳恒山、中岳嵩山“; char subChar1 = 岳; int pos1; System.out.println(“这段诗中出现“岳”字的位置分别是:“); pos1 = str1.indexOf(subChar1); while (pos1 = 0) System.out.println(pos1); pos1 = str1.indexOf(subChar1, pos1 + 1); ,字符串类,字符串的修改操作 append函数:在字符串末尾添加新的内容 append函数的形式: append(boolean b); append(char c); append(char str

12、); append(char str, int offset, int len); append(double d); append(float f); append(int i); append(long l); append(String str); append(StringBuffer strbuf);,字符串类,字符串的修改操作 insert函数:在字符串中的特定位置插入一段子字符串 insert函数也有多种形式,可以插入整数、浮点数、逻辑值、单个字符、字符串等 例题: StringBuffer mainStr = new StringBuffer(“黄河远上白云一片孤城万仞山“);

13、 String subStr = “间“; mainStr.insert(6, subStr); System.out.println(mainStr);,字符串类,字符串的修改操作 setCharAt函数和replace函数:修改字符串 setCharAt(int index, char ch); replace(int start, int end, String str);,字符串类,字符串的修改操作 例题: StringBuffer modiStr = new StringBuffer(“When i am young, Id listening to the radio“); mod

14、iStr.setCharAt(5, I); modiStr.replace(7, 9, “was“); System.out.println(modiStr);,字符串类,字符串的修改操作 deleteCharAt,delete函数:删除字符串 deleteCharAt(int index); delete(int start, int end);,字符串类,字符串的转换操作 toString函数:对象转换为字符串 Object类中定义了toString函数,因此所有的类也都继承了toString函数 因此Java建议每个类覆盖Object类的toString函数,产生适合自己类的字符串,字符

15、串类,字符串的转换操作 valueOf函数:将数值转换成字符串 static String String.valueOf(boolean b); static String String.valueOf(int i); static String String.valueOf(long l); static String String.valueOf(float f); static String String.valueOf(double d); static String String.valueOf(char c); static String String.valueOf(char d

16、ata); static String String.valueOf(char data, int offset, int count);,字符串类,字符串的连接 double d = 1032705.32; System.out.println(“上月底,本公司的帐面资金余额为:“ + d + “元。“);,字符串类,字符串的连接 对于String对象,包括字符串文字,可以用“+”将两个或多个字符串连接起来,形成新的字符串。如下面的例子: String str1, str2, str3; str1 = “君不见“ + “黄河之水天上来“; str2 = “奔流到海不复回“; str3 = s

17、tr1 + str2;,字符串类,字符串的连接 也可以用“+”号连接字符串和整数、浮点数、逻辑值、字符等 Java自动调用String.valueOf()函数将后者转换成字符串 凡是能够用valueOf函数转换的数据类型,都可以用“+”号与字符串连接,数值(Number)类及其子类,数值类的定义与功能 在Java中,对应byte, short, int, long, float, double等简单数据类型,分别有一个对应的数值类:Byte, Short, Integer, Long, Float, Double 它们都是从数值类Number继承而来的 数值类的作用是扩展数据处理的功能,数值(

18、Number)类及其子类,数值类的用途 将数字转换成字符串: 每个数值类都有toString静态函数: static String Byte.toString(byte b); static String Short.toString(short s); static String Integer.toString(int i); static String Long.toString(long l); static String Float.toString(float f); static String Double.toString(double d); 函数的作用是将整数或浮点数转换成

19、字符串,数值(Number)类及其子类,数值类的用途 toString函数应用例题: int i = 7; double d = 13.56; String str1, str2; str1 = Integer.toString(i); str2 = Double.toString(d); System.out.println(“str1=“ + str1 + “; str2=“ + str2 + “;“); 执行这段代码之后,屏幕显示的内容是: str1=7; str2=13.56;,数值(Number)类及其子类,数值类的用途 将字符串转化为数字: valueOf函数: static In

20、teger Integer.valueOf(String str); static Double Double.valueOf(String str); valueOf函数返回的是Integer或Double型对象,还需转换成整数或浮点数: int Integer.intValue(); double Double.doubleValue();,数值(Number)类及其子类,数值类的用途 将字符串转化为数值的例题: String str1 = “3532“; String str2 = “187.863“; Integer strval1; Double strval2; strval1 =

21、 Integer.valueOf(str1); strval2 = Double.valueOf(str2); int i = strval1.intValue(); double d = strval2.doubleValue(); System.out.println(“i=“ + i + “; d=“ + d + “;“);,数值(Number)类及其子类,数值类的用途 这种方法需要转换两次,使用比较繁琐,另外一种方法只需要一次转换: static int Integer.parseInt(String str); static double Double.parseDouble(Str

22、ing str); 这两个函数都是静态函数,因此不需要建立Integer或Double对象,可以直接使用,数值(Number)类及其子类,几种特殊的浮点数 Java中的浮点数可以包括“非数”,“正无穷大”,“负无穷大” 。例如下面的代码: System.out.println(0.0/0.0); System.out.println(1.0/0.0); System.out.println(-1.0/0.0);,数值(Number)类及其子类,几种特殊的浮点数 Double类提供了两个静态函数,来判断一个浮点数是不是这三种特殊数值: static boolean Double.isNaN(do

23、uble v); static boolean Double.isInfinite(double v); 由此可以及时发现错误的计算数据,数组类,数组的定义与特点 数组:可以容纳很多同类型的数据的结构 数组中存放的每个数据称为数组的一个元素,元素的数量称为数组的长度 在Java语言中,数组的长度是在数组创立时就固定了的,以后不能更改 但与C+等语言不同,Java的数组长度是在运行期定下来的,而不是在设计期给定长度。因此灵活性更强一些,数组类,数组的定义与初始化 与普通变量一样,数组也是由定义、初始化两部分组成的 数组变量的定义与普通变量一样,只是在变量类型的后面加上“”以表示数组: int a

24、rray1; double array2; StringBuffer array3; BoardGame array4;,数组类,数组的定义与初始化 数组也是用new关键字来初始化的,初始化时必须给出数组的长度,如下所示: int len = 8; array1 = new int10; array2 = new doublelen-1; array3 = new StringBufferlen*2; array4 = new BoardGame15; 虽然也是固定长度数组,但可以在运行时用变量来指定数组长度,数组类,快速初始化数组的方法 Java提供了一种简便的方法,可以将数组的定义、初始化

25、和赋初值合为一体: int myData1 = 0, 1, 3, 6, 8, 12, 634, 21564, 845646; String myStr1 = “明月出天山“, “苍茫云海间“, “长风几万里“, “吹度玉门关“, “汉下白登道“, “胡窥青海湾“, “由来征战地“, “不见有人还“, “戍客望边色“, “思归多苦颜“, “高楼当此夜“, “叹息未应闲“, ;,数组类,数组的复制 数组变量也属于引用变量,因此赋值语句只能复制指针,而不能复制整个数组: String myStr2; myStr2 = myStr1; 为了复制数组,需要使用System.arraycopy函数,该函数

26、的形式如下: public static void System.arraycopy(Object src, int srcIndex, Object dest, int destIndex, int length);,数组类,数组的复制例题 public class ArrayCopyDemo public static void main(String args) char copyFrom = d, e, c, a, f, f, e, i, n, a, t, e, d ; char copyTo = new char7; System.arraycopy(copyFrom, 2, cop

27、yTo, 0, 7); System.out.println(new String(copyTo); ,数组类,多重数组 数组的元素也是数组,可表示数据表格: int MagicSquare = 8, 1, 6, 3, 5, 7, 4, 9, 2, ; 多重数组中的元素用的形式访问,如: System.out.println(MagicSquare11);,集合类,集合类的功能 如果要求长度可变,就不能使用数组,而应当使用集合类。这里简单介绍集合中的向量类,它在功能上最接近于数组 Vector类的使用例题: public class VectorDemo public static void

28、main(String args) Vector strs = new Vector(); for (int i=0; i5; i+) strs.addElement(Integer.toString(i); for (int i=0; istrs.size(); i+) System.out.println(String)strs.elementAt(i); ,Object类,Object类的作用 在Java中,所有的类,不管有没有定义其父类,都以Object类作为直接或间接的父类 也就是说,所有的类都继承自Object类 Object类定义了基本的成员变量和成员函数 对象间的比较 将对象转

29、换成字符串 线程的等待与通知 返回对象所属的类,Object类,Object类的成员函数 clone:将对象复制一份,并返回复制后的对象的指针。 equals/hashcode:比较两个对象是否相等。 finalize:当对象被回收时调用的,仅用于混合语言编程时,回收动态分配内存用。 toString:将对象转换成恰当的字符串。,Object类,Object类的成员函数 getClass:获得当前对象所属的类,返回的是Class对象,可以用obj.getClass().getName()来获得类名 notify:唤醒一个处于等待状态的线程 notifyAll:唤醒所有处于等待状态的线程 wait:让当前线程等待,直到其它线程通过notify或notifyAll函数唤醒为止,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1