實驗 5 數組、向量和字符串
一、實驗目的
1.?掌握Java中的數組定義、引用
2.?掌握向量的基本概念和應用技術
3.?掌握使用字符串String類處理字符串的方法
4.?掌握使用字符串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("a["+0+"] = "+a[0]);
??????? System.out.println("a["+1+"] = "+a[1]);
??????? System.out.println("a["+2+"] = "+a[2]);
??????? System.out.println("a["+3+"] = "+a[3]);
??????? System.out.println("a["+4+"] = "+a[4]);
??????? System.out.println("arr1("+0+","+0+") = "+arr1[0][0]);
??????? System.out.println("arr1("+0+","+1+") = "+arr1[0][1]);
??????? System.out.println("arr1("+0+","+2+") = "+arr1[0][2]);
??????? System.out.println("arr1("+1+","+0+") = "+arr1[1][0]);
??????? System.out.println("arr1("+1+","+1+") = "+arr1[1][1]);
??????? System.out.println("arr1("+1+","+2+") = "+arr1[1][2]);
????? }
}
¨?編譯并運行程序
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
????????????????????? 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("3"); //在向量尾部添加元素
v.insertElementAt("0",0);//在指定位置插入元素
v.insertElementAt("aaa 字符串元素",3);
v.setElementAt("4",4);//替換指定位置的元素
v.addElement("5");
System.out.println("第4 號元素為:"+v.elementAt(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 的所有元素:"+buffer.toString()+"\n");
System.out.println("向量v 的元素個數="+v.size()+" v 的長度為:"+v.capacity()+"\n");
v.removeAllElements();
System.out.println("刪除后元素個數:"+v.size()+" 向量v 長度:"+v.capacity()+"\n");
}
}
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("正常字符串:"+str, 30, 30);
??????????? g.drawString("翻轉字符串:"+reverse(str), 30, 60);
????????? }
????????? 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 文件
評論
查看更多