当前位置:文档之家› java实验报告——字符串处理及基础类库

java实验报告——字符串处理及基础类库

实验名称 字符串处理及基础类库 指导教师 实验类型 □验证 √综合 实验学时 2+10 实验日期 实验时间 实验编号 1 分组号 1 实验地点 6A-418 一、 实验目的和要求 1. 了解 Java 系统包的结构。 2. 掌握创建自定义包的方法。 3. 熟练掌握抽象类abstract的概念。掌握抽象类的定义和使用; 4. 熟练掌握接口interface的概念。掌握使用系统接口的技术和创建自定义接口的方法。 5. 熟练包package的概念以及编译运行的方法。 6. 熟练掌握内部类inner class的概念。 7. 熟练掌握递归的概念。 8. 理解系统异常处理的机制和创建自定义异常的方法。 9. 了解 Java 常用的系统类,包括字符串类、数学函数类、日期类、随机数类等的基本使用方法。理解 Java 系统类的构成。 10. 理解并掌握String类、StringBuffer类; 11. 理解并掌握StringTokenizer类 12.掌握字符串与其他数据类型的转换 13.理解 Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。 14 掌握编写独立运行的窗口界面的方法。 15 了解 Java Swing 组件的使用方法。

二、实验环境(实验设备)

硬件: 微型计算机P4 软件: Windows XP+NetBean IDE 6.9+JDK 1.6

三、实验原理及内容 1.定义一个接口,并将该接口存放到包com.interfac中,同时该接口中有三个抽象方法: long factorial(int m);求参数m的阶乘 long myPower(int m,int n);求参数m的n次方。 boolean findFactorSum(int m,int n);判断参数中较小数是否是较大数的因子。 实现该接口。编写应用程序使用实现了接口的类中的的各个方法,并将调用这些方法得到的结果输出。

2.利用Swing组件编程利用BigInteger类,计算1001!nn。操作界面如下: 实验报告

2 3.使用Scanner类中的方法从键盘上输入一段英语,并保存于StringBuffer对象中,然后对StringBuffer对象中的字符串进行追加三个中文单词:”你好 ”,”欢迎学习”,”最有用语言”。然后再使用StringTokenizer类中的方法统计中其中有多个单词,并逐一输出每个单词。 要求:集中指导2学时;课后学时10学时。 实验报告

3 实验解答: 1) 写出接口的完整代码。 package com.interfac; public interface math { long factorial(int m); long myPower(int m,int n); boolean findFactorSum(int m,int n); }

2)写出应用接口的类的代码。 package com.interfac; public class jiekou implements math{

public long factorial(int m) { long t = 1; for(int i=1;i<=m;i++){ t*=i; } return t; }

public long myPower(int m, int n) { if(n==1) return m; else return myPower(m,n-1)*m; }

public boolean findFactorSum(int m, int n) { return m>=n? m%n==0?true:false:n%m==0?true:false; } public static void main(String args[]){ jiekou one=new jiekou(); System.out.println("M的阶乘为:"+one.factorial(8)); System.out.println("m的n次方为:"+one.myPower(8, 4)); System.out.println("参数中较小数是否是较大数的因子:"+one.findFactorSum(4, 7)); } }

实验报告 4 3)第二题中使用了哪些Swing中的组件? 答: 使用了窗口、文本框、标签、按钮、文本域、面板这些组件

4)写出第二题中按钮注册监听器的语句 jb.addActionListener(this);

5)写出第二题中事件处理方法 在程序的开头应该输入import java.math.*;import java.awt.event.*;import javax.swing.*;三条语句,因为BigInteger类、事件处理、组件需要这三条语句。 事件源. addActionListener(addActionListener代表某种事件监听者) public void actionPerformed(ActionEvent e){ cc(); }//实现ActionListener接口所定义的方法actionPerformed jt.addActionListener(this);//为文本框设置监听器 jb.addActionListener(this); //为按钮设置监听器 其次应当实现该界面的计算方法,代码如下: void cc(){ String s=jt.getText().trim(); if(s.length()==0) s=""; try{ int t = Integer.parseInt(s); BigInteger result=new BigInteger("1"); BigInteger sum=new BigInteger("0"); for(int i=1;i<=t;i++){ BigInteger num=new BigInteger(String.valueOf(i)); result=result.multiply(num); sum=sum.add(result); } ja.setText(String.valueOf(sum)); }catch(NumberFormatException e){ ja.setText("你输入的不是整数,请重新输入"); } } 实验报告

5 6)写出第二题中的界面设计代码 public class qq implements ActionListener { JFrame jf; JTextField jt; JLabel jb1,jb2; JTextArea ja; JPanel jp; JButton jb; void aq(){ jf=new JFrame("计算阶乘和"); jf.setDefaultLookAndFeelDecorated(true); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jp=new JPanel(); jt=new JTextField(15); jt.addActionListener(this); ja=new JTextArea(10,20); ja.setLineWrap(true); jb1=new JLabel("请输入整数n:"); jb2=new JLabel("1至n的阶乘和是:"); jb=new JButton("计算和"); jb.addActionListener(this); jp.add(jb1); jp.add(jt); jp.add(jb); jp.add(jb2); jp.add(ja); jf.getContentPane().add(jp); jf.setSize(350, 250); jf.setVisible(true); } 实验报告

6 7)写出实现第3题的java代码 import java.util.*; public class zhuijia { public static void main(String args[]){ Scanner in=new Scanner(System.in); StringBuffer str=new StringBuffer(); String str1=new String(); System.out.print("输入一段英语:"); str1=in.nextLine(); str.append(str1); str.append("你好"); str.append("欢迎学习"); str.append("最有用语言"); System.out.println(str); StringTokenizer fenxi=new StringTokenizer(str1," , "); int number=fenxi.countTokens(); System.out.println("共有"+number+"个单词"); while(fenxi.hasMoreTokens()){ String str2=fenxi.nextToken(); System.out.println(str2); }

} }

相关主题