实验 5 数组、向量和字符串
一、实验目的
1. 2. 3. 4.
掌握Java中的数组定义、引用 掌握向量的基本概念和应用技术
掌握使用字符串String类处理字符串的方法
掌握使用字符串StringBuffer类处理字符串的方法
二、实验要求
1. 编写一个使用 Java 数组的的程序。 2. 掌握向量类的使用方法。 3. 掌握字符串类的使用方法。
三、实验内容 (一)使用数组
1. 建立使用数组的程序,本程序建立了一个长度为 5 的 1 维数组,一个长度为 12 的 2 维数组 ? 源代码如下。 public class KY5_1 {
public static void main(String args[]) { int a[]=new int[5];
int arr1[][]=new int[3][4]; a[0]=10;
a[1]=10+a[0]; a[2]=30; a[3]=40;
a[4]= a[1]+ a[2];
arr1[0][0]=0; arr1[0][1]=1; arr1[0][2]=2; arr1[1][0]=3; arr1[1][1]=4; arr1[1][2]=5; arr1[2][0]=6; arr1[2][1]=7; arr1[2][2]=8; System.out.println(\ System.out.println(\ System.out.println(\ System.out.println(\ System.out.println(\
System.out.println(\ System.out.println(\
- 29 -
System.out.println(\ System.out.println(\ System.out.println(\ System.out.println(\ }
} ? 编译并运行程序
2. 编程实现Fibonacci数列。 ? Fibonacci数列的定义为:
F1=1, F2=1, …
Fn=Fn-1+Fn-2 (n>=3) ? 提示:关键代码如下:
f[0]=f[1]=1;
for(i=2;i<10;i++) f[i]=f[i-1]+f[i-2];
3. 编程采用冒泡法实现对数组元素由小到大排序。 ? 冒泡法排序对相邻的两个元素进行比较,并把小的元素交换到前面。 ? 提示:关键代码如下:
for(i=0;i for(j=i+1;j t=intArray[i];intArray[i]=intArray[j];intArray[j]=t; } (二)使用向量类 大多数编程语言中的数组是固定长度的,即数组一经建立就不能在使用过程中改变其长度。Java 引入Vector 类来创建可以改变长度的变量。Vector 被设计成一个能不断增长的序列,它类似于可变长数组,但功能更加强大,因为任何类型的对象都可以放入Vector 类的对象中。通过调用Vector 封装的方法,可以随时添加或删除向量元素,以及增加或缩短向量序列的长度。 1. 创建使用Vector 向量类的应用程序 2. 程序功能:创建一个Vector 对象v,先通过键盘为args[]输入两个分量,然后赋值给对象v, 并通过直接方式为其分量赋值。 3. 编写KY5_2.java 程序文件 import java.util.*; public class KY5_11{ public static void main(String args[]) { Vector v=new Vector(1,1); v.addElement(args[0]); //在向量尾部添加元素 v.addElement(args[1]); v.addElement(\在向量尾部添加元素 - 30 - v.insertElementAt(\在指定位置插入元素 v.insertElementAt(\字符串元素\v.setElementAt(\替换指定位置的元素 v.addElement(\ System.out.println(\第4 号元素为:\ Enumeration enum=v.elements();//枚举化对象,以便逐个取出元素 StringBuffer buffer=new StringBuffer();//字符串缓冲区 while(enum.hasMoreElements()) buffer.append(enum.nextElement()).append(\buffer.deleteCharAt(buffer.length()-1); System.out.println(\向量v 的所有元素:\System.out.println(\向量v 的元素个数=\的长度为: \ v.removeAllElements(); System.out.println(\删除后元素个数:\向量v 长度:\} } 4. 编译并运行程序 (三)使用字符串与字符串类 1. 编写 KY5_3.java 程序文件,源代码如下。 import java.applet.Applet; import java.awt.Graphics; public class KY5_2 extends Applet { public void paint(Graphics g) { String str=\这是一个字符串——This is a test string\ g.drawString(\正常字符串:\ g.drawString(\翻转字符串:\ } public String reverse(String s) { int len=s.length(); StringBuffer buffer=new StringBuffer(len); for (int i=len-1; i>=0; i--) buffer.append(s.charAt(i)); return buffer.toString(); } } 2. 编译 KY5_2.java 程序文件。 3. 编写显示 KY5_2.class 的页面文件 KY5_2.html,源代码如下。 4. 在浏览器打开 KY5_2.html 文件 - 31 - 实验 6 常用系统类的使用 一、实验目的 了解 Java 常用的系统类,包括 Java Applet、字符串类、输入输出流类、数学函数类、日期类、随机数类以及向量类等的基本使用方法。理解 Java 系统类的构成。 二、实验要求 1. 2. 3. 4. 5. 进一步了解 Applet 类。 掌握不同类型的输入输出流类,标准数据流、文件流、数据输入输出流、对象流等。 掌握数学函数类的使用方法。 掌握日期类的使用方法。 掌握向量类的使用方法。 三、实验内容 (一)了解 Applet 的生命周期 1. 编写 KY6_1.java 程序文件,源代码如下。 import java.applet.Applet; import java.awt.Graphics; public class KY5_1 extends Applet { StringBuffer buffer=new StringBuffer(); public void init() { addWords(\执行了初始化方法 init()...\ } public void start() { addWords(\执行了开始方法 start()...\ } public void stop() { addWords(\执行了停止方法 stop()...\ } public void destroy() { addWords(\执行了清除方法 destroy()...\ } void addWords(String s) { System.out.println(s); buffer.append(s); repaint(); - 32 - } public void paint(Graphics g) { g.drawString(buffer.toString(),5,15); } } 2. 编译 KY5_1.java 文件。 3. 编写显示 KY5_1.class 的页面文件 KY5_1.html,代码如下。 4. 在命令提示符窗口调用小程序查看器浏览 KY5_1.html 页面观察 Applet 应用程序, (二)使用数学函数类 Math 是一个最终类,含有基本数学运算函数,如指数运算、对数运算、求平方根、三角函数、随机数等,可以直接在程序中加Math.前缀调用。 1. 创建使用Math 类的应用程序KY5_8.java,源程序如下。 import java.util.*; class KY5_8 { public static void main(String args[]) { Random r1=new Random(1234567890L); Random r2=new Random(1234567890L); boolean b=r1.nextBoolean(); // 随机数不为0 时取真值 int i1=r1.nextInt(100); // 产生大于等于0 小于100 的随机数 int i2=r2.nextInt(100); // 同上 double i3=r1.nextDouble(); // 产生大于等于0.0 小于1.0 的随机数 double i4=r2.nextDouble(); // 同上 double d1=Math.sin(Math.toRadians(30.0)); double d2=Math.log(Math.E); double d3=Math.pow(2.0, 3.0); int r=Math.round(33.6F); System.out.println(\的随机数不为0 时 \System.out.println(\的随机数为 \System.out.println(\的随机数为 \System.out.println(\的随机数为 \System.out.println(\的随机数为 \ System.out.println(\弧度的正弦值:Math.sin(Math.toRadians(30.0))= \System.out.println(\的对数值:Math.log(Math.E)= \System.out.println(\的3 次方:Math.pow(2.0, 3.0)= \System.out.println(\四舍五入:Math.round(33.6F)= \} } 2. 编译 KY6_2.java 文件。 - 33 -