ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:23.56KB ,
资源ID:9566866      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9566866.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(常用系统类.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

常用系统类.docx

1、常用系统类实验3.3 常用系统类实验1实验目的(1)掌握字符串处理方法; (2)了解Math类的数学方法的使用; (3)熟悉各种数据类型包装类的使用; (4)了解Vector类的使用。2 知识要点2.1 Object类(1) Object类处于Java继承层次中最顶端的类,它封装了所有类的公共行为。(2) Object类的equals()方法采用的是=运算比较,也就是只有两个引用变量指向同一对象时才相等。而实际上我们期望该方法进行对象的内容比较,因此子类中通常将equals()方法改写。(3) Object类的toString()方法是返回对象的描述信息,在Object类中该方法返回对象的类名

2、及对象引用地址。子类中通常要提供自己的toString()方法,以便更好描述对象。2.2 Math类(1)Math类中的方法和属性均为静态的,Math类不能创建对象。(2)表9-1列出的Math类的方法不少提供了参数多态。(3)方法random()产生的随机数的范围是01之间的不包括0和1的一个小数形式的数。表9-1 Math类的常用方法 方法 功能 int abs(int i) 求整数的绝对值 ;另有针对long,float,double的多态方法 double ceil(double d) 不小于d的最小整数(返回值为double型) double floor(double d) 不大于d

3、的最大整数(返回值为double型) Int max(int i1,int i2) 求两个整数中最大数;另有针对long,float,double的多态方法 Int min(int i1,int i2) 求两个整数中最小数 ;另有针对long,float,double的多态方法 double random() 0之间的随机数 Int round(float f) 求最靠近f的整数 long round(double d) 求最靠近d的长整数 double sqrt(double a) 求平方根 double cos(double d) 求d的cos函数 注:其它求三角函数的方法有sin,tan

4、 double log(double d) 求自然对数 double exp(double x) 求e的x次幂(ex) double pow(double a, double b) 求a的b次幂 23 数据类型包装类(1)每种基本数据类型均有对应的包装类,除char和int的包装类为Character和Integer外,其他类型的包装类的名字均为相应类型的关键字将首字符换大写(例如:long的包装类为Long).(2) 包装类用来实现该类型数据的一些处理操作,尤其是其中的静态方法,见表9-2。表9-2 数据包装类的常用方法 方法功能 int Integer.parseInt(String s)

5、 将数字串转化为整数 long Long.parseLong(String s) 将数字串转化为长整数 double Double.parseDouble(String s)将数字串转化为双精度数 boolean Character.isDigit(char c)判断某字符是否为数字 boolean Character.isLetter(char c)判断某字符是否为字母 String Integer.toString(int k)将一个整数转换为字符串 String Integer.toBinaryString(int k)将一个整数转换为二进制字符串2.4 String类-字符串常量(1)

6、String类创建的字符串对象的内容不能改变;(2)理解字符串的拼接运算的含义,可以将任何数据类型的数据与字符串进行拼接,包括对象类型的数据,它将调用对象的toString()的结果与串拼接。拼接的结果为一个新的串对象,不会改变源字符串对象的内容。例如:String x=hello;String x1=x; /x1和x指向同一串对象String y=good;x=x+y+2; /修改x的值,让其指向新生成的串。System.out.println(x);System.out.println(x1);输出结果为:hellogood2hello(3)String类提供了丰富的实例方法,见表9-3。

7、表9-3 String类的实例方法 方法 功能 boolean equals(Object obj) 当前串与参数串比较是否相等 boolean equalsIgnoreCase(String s2)比较两个字符串,不计较字母的大小写 int length()求字符串长度 String trim()去除前导空格和尾部空格 int indexOf(int ch, int fromIndex)从formIndex位置开始往后查找字符串中的字符ch的首次出现位置。 int indexOf(String s, int fromIndex)从formIndex位置开始往后查找字符串中的子串的首次出现位置

8、。 char charAt(int index) 从串中获取指定位置的字符 String substring(int begin, int end)根据始末位置从串中获取子串 String split(String regex) 按照分隔符将串分成若干子串 String replace(char ch1,char ch2) 将字符串中所有ch1字符换为ch22.5 StringBuffer类可变字符串(1)StringBuffer类创建的串可以修改,可以对串的内容进行增、删、改操作。(2)StringBuffer的常用方法,见表9-4。表9-4 StringBuffer类的常用方法 方法 功能

9、 StringBuffer append(Object obj) 某个对象的串描述添加到 StringBuffer尾部 StringBuffer insert(int pos, Object obj)将某个对象的串描述插入到StringBuffer中的某个位置 StringBuffer setCharAt(int pos, char ch)用新字符替换指定位置字符 StringBuffer deleteCharAt(int pos)删除指定位置的字符 StringBuffer replace(int start, int end, String str)将参数指定范围的一个子串用新串替换 St

10、ring substring(int start, int end)获取所指定范围的子串2.6 Vector类(1)类Vector实现了可扩展的对象数组,使用向量没有数组的范围限制,可以不断添加元素。但向量中不能存放基本数据类型的数据,加入的数据均为对象。(2)向量的常用访问方法见表9-5。表9-5 Vector类常用方法 方法 功能 void add(int index, Object element) 将某个对象插入向量的指定位置 boolean add(Object o) 将某个对象添加到向量中 void addElement(Object obj) 将某个对象添加到向量中 int si

11、ze()向量中已存放元素个数 void clear()删去所有元素 boolean contains(Object elem)检测向量中是否包含指定对象 Object get(int index)根据位置获取向量元素 int indexOf(Object obj, int start) 从指定位置起向后搜索对象obj,返回首次匹配位置 boolean remove(Object o) 删去指定对象 void removeElementAt(int index) 删去指定位置的元素(3)对向量的遍历访问方法(设v为一向量)方法1:通过位置访问for (int k=0;kv.size();k+)

12、输出 v.get(k);方法2:通过使用迭代子进行遍历Iterator p=v.iterator(); while (p.hasNext() 输出 p.next(); 3 样例程序样例1:编写一个方法统计一个字符在某字符串中的出现次数;从命令行参数获取一个算术表达式,利用前面方法判断该表达式的左右括号数量是否一致,如果一致,输出“YES”,否则输出“NO”。【参考程序】public class Count public static void main(String args) String s = args0; if ( count(s,( ) = count(s,) /看左括号与右括号的出

13、现次数是否一样多 System.out.println( YES ); else System.out.println( NO ); /* 统计字符c在串s中的出现次数 */public static int count(String s ,char c) int x=0; /计数变量for (int k=0;ks.length();k+) if (s.charAt(k)=c) x+; /在第k个位置出现,则计数增1return x; 样例2:四位同学中一位做了好事,校长问这四位是谁做的好事。A说:不是我。B说:是C。C说:是D。D说:C胡说。已知三个人说的是真话,一个人说的是假话。根据这些信

14、息,找出做了好事的人。【参考程序】public class good public static void main(String a) char man; /做好事的人 String x=ABCD; /A、B、C、D中的一个 for (int k=0;k=3;k+) /用循环去测试各种情形 int count=0; man=x.charAt(k); /假设第k个是做好事者 if (man!=A) count+; /A说的话 if (man=C) count+; /B说的话 if (man=D) count+; /C说的话 if ( !(man=D) count+; /D说的话 if (cou

15、nt=3) /如果有3人说的是真话,则为要找结果,输出 System.out.println(this man=+man); 【说明】四个人中,每个人均有可能是做好事的人,所以用循环去测试,分别针对每种情形测试说真话的人的个数,如果count值为3,则为要找结果。【编程技巧】(1) 利用循环去测试每种可能性;(2) 将每人说的话用逻辑表达。(3) 统计说真话的人的计数变量赋初值0要放在循环内。样例3:设有中英文单词对照表,输入中文单词,显示相应英文单词,输入英文单词显示相应中文单词。如果没找到,显示“无此单词”。【参考程序】public class Word public static voi

16、d main(String args) String x= good,好,bad,坏,work,工作; int k; String in=args0; if ( (k=find_e(x,in)!=-1) System.out.println(xk1); else if (k=find_c(x,in)!=-1 ) System.out.println(xk0); else System.out.println(无此单词); /* 根据英文找中文,找到则返回所在行位置,未找到则返回-1 */ static int find_e(String x, String y) for ( int k=0;k

17、x.length;k+) if (xk0.equals(y) return k; return -1; /* 根据中文找英文,找到则返回所在行位置,未找到则返回-1 */ static int find_c(String x, String y) for ( int k=0;kx.length;k+) if (xk1.equals(y) return k; return -1; 【说明】这里为了简化问题,编写了两个方法,一个查找中文,一个查找英文。只要分别按中文和英文查找一遍即可,如果均为-1,则输出“未此单词”。【编程技巧】(1) 编写方法实现查找可增进程序的表达清晰;(2) 如何将单词中英

18、文对应关系用二维数组表达。样例4:从键盘输入一个英文句子,统计该句子中英文单词的个数,将找出所有单词存放到一个数组中。例如:输入 He said, Thats not a good idea. 则输出为: 共有+x.length+个单词 He said that s not a good idea 【参考程序】import java.io.*;public class ListWords public static void main(String args) throws IOException String line; char ch; boolean isWord=false; Stri

19、ngBuffer word=new StringBuffer(); System.out.println(输入一行文本:); BufferedReader br=new BufferedReader(new InputStreamReader(System.in); line=br.readLine(); for ( int i = 0; i line.length(); i+ ) ch = line.charAt(i); if ( Character.isLetter(ch) ) word.append(ch); isWord=true; else if ( isWord ) word.ap

20、pend(,); isWord=false; String x=word.toString().split(,);System.out.println(共有+x.length+个单词); for (int n=0;nx.length;n+) System.out.print(xn+ ); 【说明】一个单词的判断条件是已字母开头,后跟若干字母。也就是遇到非字母的单词即可断定为单词结束。为了便于处理,这里将所有单词拼接到一个串中,单词之间用逗号分隔。程序中引入了一个逻辑变量isWord来标记当前处理字符是否为单词的部分,是则标记为true,不是则标记为false。本例也演示了split方法的使用,

21、可以很方便地将一个字符串按指定分隔符分离出子串并存放到数组中。【编程技巧】(1) 定义一个StringBuffer类对象拼接所有单词,单词之间用逗号分隔。(2) 抓住单词的特点,是连续若干字母,所以遇到字母即可将其作为单词的组成部分插入StringBuffer中。(3) 定义一个逻辑变量记录前面是否出现单词,如果出现,则逻辑变量为true,否则为false。在处理非字母字符时通过判断该逻辑变量确定是否应插入一个逗号到StringBuffer中。(4) 利用循环扫描处理整个字符串,在处理完毕后再将StringBuffer中的所有内容转化为String类对象,利用Split方法按逗号分隔分离出单词

22、存入数组中。样例5: 利用向量记录实现学生管理,能支持学生对象的增加、删除操作,每个学生对象包括学号、姓名、性别。删除学生必须输入学生的学号。可以设计一个操作菜单,包括“增加”、“删除”、“显示”、“退出”4个选项。import java.io.*;import java.util.*;public class student String name; long stno; String sex; public student(String name,long stno,String sex) this.name=name; this.stno=stno; this.sex=sex; publ

23、ic String toString() return 姓名:+name+,学号:+stno+,性别=+sex; public static void main(String args) Vector group=new Vector();outer: while (true) String ch=input(选择:1- 增加, 2-删除, 3- 显示,4-退出); int choice=Integer.parseInt(ch); switch (choice) case 1: group.add(inputStudent();break; case 2: long stno=Long.par

24、seLong(input(请输入学号:); for (int k=0;k+p.next(); break; case 4: break outer; /* 从键盘输入一个字符串 */ public static String input(String hint) String x=null; BufferedReader br=new BufferedReader(new InputStreamReader(System.in); System.out.println(hint); try x=br.readLine(); catch(IOException e) return x; /* 从

25、键盘输入一个学生 */ public static student inputStudent() String name=input(请输入姓名:); long stno=Long.parseLong(input(请输入学号:); String sex=input(请输入性别:); return new student(name,stno,sex); 【说明】 为了简化程序,设计了两个方法:String input(String hint) : 根据提示从键盘获取一个字符串;student inputStudent() :从键盘获取学生相关信息构造学生对象。【编程技巧】(1) 在输入数据的处理

26、中编写方法,简化设计。(2) 利用向量存储学生对象,查找数据时,要从向量中读取数据进行比较,获取对象时要强制转换才能赋给代表学生的引用变量。(3) 程序演示了对向量的两种遍历处理方法。4 上机练习² 基本题1)设有一个由10个英文单词构成的字符串数组,要求:(1)统计以字母w开头的单词数;(2)统计单词中含“or”字符串的单词数;(3)统计长度为3的单词数。2)输入一个算术表达式,例如:45*2+23*(234-24),求出其中有多少整常数。3)创建一个程序,输出今天的年、月、日。提示:创建一个java.util.Date类的对象代表当前的系统日期,使用对象的getYear()方法、

27、getMonth()方法、getDay()方法可获得对应的年月日。4)编写一个程序,用于计算 x op y这样的表达式的值,表达式从命令行输入,其中op 为 + - * / % 几种运算符之一,x和y代表两个实数。5) 将以下程序补充完整import java.util.Random; public class Java_2 public static void main(String args) Random random = new Random(); float x = random.nextFloat();/产生0.0与1.0之间的一个符点数 int n = Math.round(20

28、*x); /构造20以内的一个整数 long f = 1 ; /保存阶乘的结果 int k = 1 ; /循环变量 /*Found* do _; k+; /*Found* _ System.out.println(n+!= +f); 6) 将以下程序补充完整/Java_1.java,字符串类的startsWith()和endsWith()方法import javax.swing.*;public class Java_1 public static void main( String args ) String strings = started, starting, ended, ending ; String output = ; /测试startsWith()方法 for ( int i = 0; i strings.length; i+ ) if ( strings i .startsWith( st ) ) output += + strings i + 开始于 stn; output += n; /从字符串第2个字符开始 for ( int i = 0; i strings.length; i+ ) if ( strings i .startsWith( art, 2 ) ) output += + string

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1