实验4计算1013陈高伟810070.docx
- 文档编号:10832229
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:14
- 大小:126.27KB
实验4计算1013陈高伟810070.docx
《实验4计算1013陈高伟810070.docx》由会员分享,可在线阅读,更多相关《实验4计算1013陈高伟810070.docx(14页珍藏版)》请在冰豆网上搜索。
实验4计算1013陈高伟810070
集美大学
计算机工程学院
实验报告
课程名称
Java高级语言程序设计
实验名称
实验四、字符串与容器类
实验类型
设计型
姓名
陈高伟
学号
2010810070
日期
2012-10-19
地点
陆大214
成绩
教师
陈荣鑫
评语:
一、实验目的
1.掌握字符串类的应用;掌握正则表达式的基本应用;
2.掌握几种常用容器类的使用方法。
二、实验内容
设计实验内容:
(1)设计一个字符串处理程序:
实现字符串的整体、前缀、后缀比较;子字串定位;
数字型字符转化为数字等各种功能。
(2).设计一个正则表达式处理程序:
能完成输入字串的处理—(a)能找出各种表达形
式的日期;(b)能对指定格式的子串进行替换。
(3)设计一个程序:
利用List进行学生信息列表的存储和操作,能按学号搜索、增加、
删除一个学生。
定义一个异常类,当删除不存在的学生时,将抛出错误
(4)设计一个关键字统计程序:
利用HashMap存储关键字统计信息,对用户输入的关
键字序列进行统计
三、实验要求
1、掌握字符串定义的方法以及对字符串的各种操作功能,能够熟练运用其中的方法进行字
符串操作;
2、掌握集合的相关知识,能够使用其中的各种实现类解决实际问题;
3、会定义异常操作,在程序运行的时候捕获异常。
4.实验过程
第一题:
实验代码
packagestring;
importjava.util.Scanner;
publicclassTextstring{
publicstaticvoidmain(String[]args){
Strings1="abcdel.hcj9,int",
s2="bcdsjhk,kji.hsk-/sjhg";
Scannerinput=newScanner(System.in);
System.out.println("----------字符串处理程序---------");
System.out.println("字符串的整体比较如下:
");
if(pareTo(s2)<0)
System.out.println("'"+s1+"'<'"+s2+"'");
else
System.out.println("'"+s1+"'>='"+s2+"'");
//====================================================
System.out.println("字符串的前缀比较如下:
");
System.out.print("请输入要比较的前缀:
");
Strings=input.next();
if(s1.startsWith(s))
System.out.println(s+"是"+s1+"的前缀。
");
else
System.out.println(s+"不是"+s1+"的前缀。
");
//====================================================
System.out.println("字符串的后缀比较如下:
");
System.out.print("请输入要比较的后缀:
");
s=input.next();
if(s2.endsWith(s))
System.out.println(s+"是"+s2+"的后缀。
");
else
System.out.println(s+"不是"+s2+"的后缀。
");
//====================================================
System.out.println("字符串的子字串定位如下:
");
System.out.print("请输入要定位的子串:
");
s=input.next();
if(s1.indexOf(s)==-1)
System.out.println("子串"+s+"不在字符串"+s1+"中");
else
System.out.format("子串%s在字符串%s中的位置是:
%d\n",s,s1,s1.indexOf(s));
//====================================================
System.out.println("数字型字符转化为数字如下:
");
System.out.print("请输入数字型字符:
");
s=input.next();
floata=(Float.valueOf(s)).floatValue();
System.out.println("a+100="+(a+100));
}
}
实验结果
第二题:
实验代码
packagepattern;
importjava.util.Scanner;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassZpattern{
privatestaticStringre="[/.]";
privatestaticStringreplace="-";
publicstaticvoidmain(String[]args){
Scannerconsole=newScanner(System.in);
while(true)
{
System.out.print("Enterinputstringtosearch:
");
Strings1=console.next();
Patternp1=Ppile(s1);
System.out.print("Enterinputstringtosearch:
");
Strings2=console.next();
Matcherm1=p1.matcher(s2);
Patternp2=Ppile(re);
Matcherm2=p2.matcher(s2);
booleanfound=false;
while(m1.find())
{
System.out.format("Ifoundthetext\"%s\"starting"+
"atindex%dandendingatindex%d.%n",
m1.group(),m1.start(),m1.end());
found=true;
}
if(!
found)
{
System.out.format("Nomatchfound.%n");
}
s2=m2.replaceAll(replace);
System.out.println("按指定格式的正则表达式"+re+"进行替换后,主串变为:
"+s2);
}
}
}
实验结果
第三题:
实验代码
Stu.java:
packagestu;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.Scanner;
publicclassStu{
publicstaticvoidmain(String[]args)throwsMYException{
List
Chaozuoc=newChaozuo();
for(inti=0;i<2;i++)
{
list.add(newStudent());
}
while(true)
{
System.out.println("1.打印学生信息。
2.搜索学生信息。
3.增加学生信息。
4.删除学生信息。
0.退出。
");
System.out.print("请选择:
");
Scannerscan=newScanner(System.in);
intchoice=scan.nextInt();
switch(choice)
{
case1:
c.print(list);break;
case2:
c.search(list);break;
case3:
c.adding(list);break;
case4:
c.delete(list);break;
default:
break;
}
if(choice==0)
break;
}
}
}
Student.java:
packagestu;
importjava.util.Scanner;
publicclassStudent{
privateStringstu_name=newString();
privateStringstu_no=newString();
privateStringstu_age=newString();
//初始化构造器
Student()
{
System.out.println("请输入本学生的信息:
");
Scanners=newScanner(System.in);
System.out.print("姓名:
");
stu_name=s.next();
System.out.print("学号:
");
stu_no=s.next();
System.out.print("性别:
");
stu_age=s.next();
}
Stringstu_no()
{
returnstu_no;
}
publicStringtoString()
{
return"姓名:
"+stu_name+"\t学号:
"+stu_no+"\t\t性别:
"+stu_age;
}
}
Chaozuo.java:
packagestu;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.ListIterator;
importjava.util.Scanner;
//定义一个自己的异常类MYException
classMYExceptionextendsException
{
publicMYException(){
System.out.println("删除出错,没有找到该学生的信息。
");
}
}
publicclassChaozuo{
Scannerno=newScanner(System.in);
List
//search函数实现搜索的功能
voidsearch(List
{
System.out.print("请输入要搜索的学生的学号:
");
Stringnumber=no.next();
for(inti=0;i { if(s.get(i).stu_no().equals(number)) { System.out.println("搜索到的学生的基本信息如下: "); System.out.println(s.get(i)); break; } if(i==s.size()-1) System.out.println("没有找到该学生的信息。 "); } } //delete函数实现删除的功能 voiddelete(List { inti; System.out.print("请输入要删除的学生的学号: "); Stringnumber=no.next(); for(i=0;i { if(s.get(i).stu_no().equals(number)) { //s.remove(i); break; } //if(i==s.size()-1) //System.out.println("没有找到该学生的信息。 "); } try{ s.indexOf(s.get(i)); s.remove(i); }catch(Exceptione){ thrownewMYException(); //这里用到自定义的异常类MYException来抛出错误 } } //adding函数实现增加一条学生信息的操作 voidadding(List { System.out.println("请增加一条学生信息: "); s.add(newStudent()); } //print函数实现学生信息的打印 voidprint(List { System.out.println("学生信息如下: "); for(ListIterator { System.out.println(it.next()); } } } 实验结果: 第四题: 实验代码 packagemaps; importjava.util.*; publicclassMapuse{ publicstaticvoidmain(String[]args){ //统计用户输入列表中单词的出现频率 Scanners=newScanner(System.in); Map String[]str=newString[10]; System.out.println("Pleaseinputstring(input10): "); for(inti=0;i { str[i]=s.next(); } for(Stringa: str) { Integerfreg=m.get(a); m.put(a,(freg==null)? 1: freg+1); } System.out.println(m.size()+"distinctword: "); System.out.println(m); } } 实验结果: 五、实验总结 通过字符串操作的实验,我基本掌握了字符串定义的方法以及对字符串的各种操作功能,能够熟练运用其中的方法进行字符串操作;并且通过正则表达式的实验,我掌握了基本的通配符,可以熟练运用预定义字符类\d,\b等;另外通过接口容器的实验,我熟练掌握了List接口,Map接口,以及Set接口的基本使用方法,并了解运用了它们基本的一些方法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 计算 1013 陈高伟 810070