已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java语言与JBuilder应用初步 第六章 常用的Java系统类,本章要点,字符串类 数值(Number)类及其子类 数组类 集合类 Object类,字符串类,字符串是编程中很常用的数据类型 Java语言提供两种字符串类用来实现字符串操作: String类:用于字符串常量,也就是说字符串的值不会改变 StringBuffer类:用于字符串变量,也就是说字符串的值可以改变,字符串类,字符串的使用例题 例:将输入的字符串颠倒。 public class StringsDemo public static void main(String args) String palindrome = “僧游云隐寺“; 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 myStr1 = 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 myStrBuf1 = new StringBuffer(); / 生成一个空的字符串,这个字符串的初始容量由length指定。 / 在本例中,字符串的初始容量为120个字符。 int length = 120; StringBuffer myStrBuf2 = new StringBuffer(length); / 复制String对象中的内容 String str = “北岳恒山“; StringBuffer myStrBuf3 = new StringBuffer(str);,字符串类,字符串长度和字符串容量 如果StringBuffer对象要存放的字符数大于它的容量,StringBuffer对象会自动扩大字符串容量,以放下更多的字符 myStrBuf1.append(“东岳泰山、西岳华山、南岳衡山、北岳恒山、中岳嵩山“); System.out.println(myStrBuf1.capacity(); 程序显示结果: 34,字符串类,字符串的访问操作 length()函数:获取字符串的长度 适用于String对象和StringBuffer对象 String myStr = “僧游云隐寺“; StringBuffer myStr2 = new StringBuffer(“五岳归来不看山“); int strlen1 = myStr.length(); int strlen2 = 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); myChar2 = 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指定的位置开始(包括这个字符),直到整个字符串终了的所有子串 String substring(int start, int end); 返回从start开始(包括这个字符),直到end为止(不包括这个字符)的子串,字符串类,字符串的访问操作 例1: StringBuffer myStr2 = new StringBuffer(“五岳归来不看山“); String subStr = myStr2.substring(2); substring首先在字符串中寻找索引为2的位置,就是“归”字,包括“归”字之后的所有字符都包括在子串内,最后返回的子串subStr为“归来不看山”,如下图所示,字符串类,字符串的访问操作 例2: StringBuffer myStr2 = new StringBuffer(“五岳归来不看山“); String subStr = myStr2.substring(2, 6); 首先寻找索引2的字符,就是“归”字,以此为开始字符;再寻找索引6的字符,就是“山”字,以它之前的“看”字为结尾字符,返回的子串subStr为“归来不看”,如下图所示,字符串类,字符串的访问操作 substring允许第二个参数的值等于字符串长度,也就是说,myStr2.substring(2, 7)是可以接受的,substring函数认为这表示字符串的结尾,但第二个参数不能大于字符串长度。 myStr2.substring(2, 7)返回的结果是“归来不看山”,如下图所示:,字符串类,字符串的访问操作 indexOf和lastIndexOf函数:搜索字符位置 适用于String对象和StringBuffer对象 indexOf函数的作用是从前往后搜索字符第一次出现的位置 lastIndexOf函数的作用是从后往前搜索字符第一次出现的位置 indexOf和lastIndexOf函数有很多种用法,字符串类,字符串的访问操作 indexOf的使用例题: public class StringDemo public static void main(String args) String str1 = “东岳泰山、西岳华山、南岳衡山、北岳恒山、中岳嵩山“; 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); 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(“黄河远上白云一片孤城万仞山“); 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“); modiStr.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函数,产生适合自己类的字符串,字符串类,字符串的转换操作 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 data); 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 = str1 + str2;,字符串类,字符串的连接 也可以用“+”号连接字符串和整数、浮点数、逻辑值、字符等 Java自动调用String.valueOf()函数将后者转换成字符串 凡是能够用valueOf函数转换的数据类型,都可以用“+”号与字符串连接,数值(Number)类及其子类,数值类的定义与功能 在Java中,对应byte, short, int, long, float, double等简单数据类型,分别有一个对应的数值类:Byte, Short, Integer, Long, Float, Double 它们都是从数值类Number继承而来的 数值类的作用是扩展数据处理的功能,数值(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); 函数的作用是将整数或浮点数转换成字符串,数值(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 Integer Integer.valueOf(String str); static Double Double.valueOf(String str); valueOf函数返回的是Integer或Double型对象,还需转换成整数或浮点数: int IValue(); double Double.doubleValue();,数值(Number)类及其子类,数值类的用途 将字符串转化为数值的例题: String str1 = “3532“; String str2 = “187.863“; Integer strval1; Double strval2; strval1 = Integer.valueOf(str1); strval2 = Double.valueOf(str2); int i = Value(); double d = strval2.doubleValue(); System.out.println(“i=“ + i + “; d=“ + d + “;“);,数值(Number)类及其子类,数值类的用途 这种方法需要转换两次,使用比较繁琐,另外一种方法只需要一次转换: static int Integer.parseInt(String str); static double Double.parseDouble(String 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(double v); static boolean Double.isInfinite(double v); 由此可以及时发现错误的计算数据,数组类,数组的定义与特点 数组:可以容纳很多同类型的数据的结构 数组中存放的每个数据称为数组的一个元素,元素的数量称为数组的长度 在Java语言中,数组的长度是在数组创立时就固定了的,以后不能更改 但与C+等语言不同,Java的数组长度是在运行期定下来的,而不是在设计期给定长度。因此灵活性更强一些,数组类,数组的定义与初始化 与普通变量一样,数组也是由定义、初始化两部分组成的 数组变量的定义与普通变量一样,只是在变量类型的后面加上“”以表示数组: int array1; 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提供了一种简便的方法,可以将数组的定义、初始化和赋初值合为一体: int myData1 = 0, 1, 3, 6, 8, 12, 634, 21564, 845646; String myStr1 = “明月出天山“, “苍茫云海间“, “长风几万里“, “吹度玉门关“, “汉下白登道“, “胡窥青海湾“, “由来征战地“, “不见有人还“, “戍客望边色“, “思归多苦颜“, “高楼当此夜“, “叹息未应闲“, ;,数组类,数组的复制 数组变量也属于引用变量,因此赋值语句只能复制指针,而不能复制整个数组: String myStr2; myStr2 = myStr1; 为了复制数组,需要使用System.arraycopy函数,该函数的形式如下: 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, copyTo, 0, 7); System.out.println(new String(copyTo); ,数组类,多重数组 数组的元素也
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 屋面防水课件教学课件
- 2024年度大数据中心建设与运维合同
- 2024年度供应链管理与融资合同
- 2024年度CRM系统升级合同:增强销售合同管理功能
- 2024年度5G基站建设施工合同
- 2024年建筑工程环保分包合同
- 2024上海市室内装修合同协议书范本
- 2024年度企业合规性检查与咨询服务合同
- 2024年夫妻财产清算协议
- 2024天然气管网运营管理合同
- DB35T 2113-2023 幸福河湖评价导则
- 湖北省武汉市部分重点中学2025届物理高一第一学期期中学业水平测试试题含解析
- 2024年秋大作业:中华民族现代文明有哪些鲜明特质,建设中华民族现代文明的路径是什么?附答案(六篇集合)
- 安保工作考核表
- 智慧酒店解决方案白皮书
- 2024年国家公务员考试《行测》真题(副省级)
- 东方电影学习通超星期末考试答案章节答案2024年
- 税务代理合同模板
- 出租车行业管理方案
- 【课件】第四章《第三节平面镜成像》课件人教版物理八年级上册
- 中国铁路国际有限公司招聘考试试卷2022
评论
0/150
提交评论