实验7 常用Java类
实验目的:
1、掌握Java API文档的使用;
2、借助于Java API 文档,熟悉String类的基本构造方法和常用方法的使用;
3、 借助于Java API 文档,熟悉StringBuffer类的追加、插入、查、替换、删除等操作;
4、了解StringTokenizer类的基本用法。
5、熟悉一维和二维数组的使用
实验内容
一、(计划用时:10分钟) 字符串的比较
1、运行.\ code\字符串的比较\StringCompare.java 源程序;
2、查阅API文档,结合程序运行结果,回答下列问题:
(1) 对于String对象来说,“==”运算符与equals( )方法的功能有什么不同?
答:==:比较两个字符串对象是否引用同一个实例对象;equals():比较两个字符串中对应的每个字符是否相等。
(2) s1和s2是否指向同一对象?为什么?
答:是,因为“==”运算符输出为ture
(3) s3和s4是否指向同一对象?为什么?
答:不是,因为“==”运算符输出为flase
(4) s1==s3是否成立?为什么?
答:不成立,因为是两个不同的实例对象
(5) s1、s2、s3、s4的内容是否相同?
答:相同
(5) compareTo( )方法的功能是什么?当比较结果分别为 负数、正数、0 时,代表什么含义?
答:按字典顺序比较两个字符串。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0。
二、(计划用时:20分钟) String类的使用
1、查阅Java API 文档,熟悉String类基本构造方法和常用方法的使用;
2、打开.\code\String类的使用\StringTest.java程序,根据注释将程序所缺代码补充完整。(小技巧:如果某一行的内容不会填写,可用//将该行内容注释掉,从面不影响整个程序的运行)
//String的使用
public class stringtest {
public static void main(String args[]) {
String str="zhangsan@scse"; //创建一个以"zhangsan@scse"为参数的String对象
System.out.println("字符串的长度: "+str.length()); //输出字符串的长度
System.out.println(java定义一维数组并赋值"字符串的首字符: "+str.charAt(0));//输出字符串的首字符
System.out.println("字符串的最后一个字符: "+str.charAt(str.length()-1));//输出字符串的最后一个字符
System.out.println("字符\'@\'的索引号(即下标): "+str.indexOf('@'));//输出字符'@'的索引号(即下标)
System.out.println("最后一个点号(.)的索引号(即下标): "+str.lastIndexOf('.'));//输出最后一个点号(.)的索引号(即下标)
System.out.println("该邮箱的用户名(即第一个单词): "+str.substring(0,str.indexOf('@'))
);//输出该邮箱的用户名(即第一个单词)
System.out.println("该邮箱的顶级域名(即最后一个单词): "+str.substring(str.lastIndexOf('.')+1,str.length()));//输出该邮箱的顶级域名(即最后一个单词)
System.out.println("字符串全部以大写方式输出为: "+UpperCase());//字符串全部以大写方式输出
System.out.println("字符串全部以小写方式输出为: "+LowerCase());//字符串全部以小写方式输出
}
}
三、(计划用时:15分钟) StringBuffer类的使用
1、查阅Java API 文档,熟悉StringBuffer类的追加、插入、查、替换、删除等操作;
2、打开.\code\StringBuffer类的增加、删除和修改\StringBufferTest.java程序,根据注释将程序所缺代码补充完整。
(小技巧:如果某一行的内容不会填写,可用//将该行内容注释掉,从面不影响整个程序的运行)
//StringBuffer的增加、删除和修改
public class StringBufferTest {
public static void main(String args[]) {
char ch[]={'2','0','0','8','年'};
StringBuffer sb=new StringBuffer("北京奥运会开幕时间: ");//创建一个以"北京奥运会开幕时间: "为参数的StringBuffer对象
sb.append("8月8日晚8点"); //在sb尾部追加"8月8日晚8点"字符串
sb.insert(sb.length(),ch); //在sb头部插入字符数组ch的内容
System.out.println("字符串内容为: "+sb.toString());
int n=sb.indexOf("北京");
sb.replace(n,2,"第29届"); //将字符串中"北京"替换为"第29届"
System.out.println("替换后,得到的字符串内容为: "+sb.toString());
System.out.println("字符串的长度为: "+sb.length());//输出字符串的长度
sb.delete(0,18); //删除字符串中从第6个字符开始到第18个字符为止的内容
System.out.println("删除字符串后,得到的字符串内容为: "+sb.toString());
}
}
四、(计划用时:10分钟) StringTokenizer类的使用 (选做题)
打开.\code\字符串的单词分析器\StringTokenizerTest.java程序,阅读程序代码,理解各语句的功能,最后运行程序。
五、(计划用时:10分钟) 一维数组的使用
1、打开.\code\一维数组\文件夹中 Array.java 源文件,根据注释填充所缺代码,然后编译、运行该程序,并回答相关问题:
程序代码
//一维数组:声明,创建,初始化,数组元素的引用及数组拷贝
public class Array{
public static void main(String[] args){
String strArray[]; //声明一个String类型的一维数组
strArray=new String[5]; //为strArray数组分配存放5个字符串的空间
for (int i=0; i<strArray.length;i++) //输出strArray数组各元素的值
System.out.println("StrArray["+i+"] = "+strArray[i]);
System.out.println();
String FuWa[]={"贝贝","晶晶" ,"欢欢" ,"迎迎", "妮妮"};
for (int i=0; i<FuWa.length;i++) //输出FUWa数组各元素的值
System.out.println("FuWa["+i+"] = "+FuWa[i]);
System.arraycopy(FuWa, 0, strArray, 0, 3); //将FuWa中的前三个元素拷贝到strArray对应的位置上
for (int i=0; i<strArray.length;i++) //输出strArray数组各元素的值
System.out.println("StrArray["+i+"] = "+strArray[i]);
}
}
问题:
(1)一维数组如何声明、创建?如果没有给数组元素赋值,则它们的取值如何?
答:声明:数据类型 数组名[ ]
或 数据类型[ ] 数组名
创建:new 数据类型[数组的长度]
空值
(2)数组的静态初始化具有什么功能?
答:在定义数组的同时就为数组元素分配空间并赋值
(3)要了解数组元素的个数,可用访问数组的什么属性得到?
答:length长度
(4)怎样引用数组的元素?写出它的下标取范围。
答:数组名[i],i的取值范围为0~i-1
(5)如何将一个数组的内容拷贝到另一个数组中?
答:arraycopy
六、(计划用时:15分钟) 二维数组的使用
1、打开.\code\二维数组\文件夹中 Array2.java 源文件,根据注释和邻近的程序段填充所缺代码,然后编译、运行该程序,并回答相关问题:
程序代码
import java.util.Arrays;
public class Array2{
public static void main(String[] args){
//声明一个名为myArray的数组,该数组有2行,每行列数不等,并为其分配内存空间
int myArray[][]=new int[2][];
myArray[0]=new int[5]; //第一行有5个元素,并为其分配内存空间
myArray[1]=new int[10]; //第二行有10个元素,并为其分配内存空间
for (int j=0; j<myArray[0].length;j++) //用1-10之间的随机整数给第一行元素赋值
myArray[0][j]=(int)(Math.random()*10);
for (int j=0; j<myArray[1].length;j++) //用100-200之间的随机整数给第二行元素赋值
myArray[1][j]=(int)(Math.random()*100+100);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论