String类的实现说明书.docx
- 文档编号:12860040
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:22
- 大小:114.78KB
String类的实现说明书.docx
《String类的实现说明书.docx》由会员分享,可在线阅读,更多相关《String类的实现说明书.docx(22页珍藏版)》请在冰豆网上搜索。
String类的实现说明书
序言
字符串是字符的序列,它是许多程序设计语言的基本数据结构。
有些语言中的字符串是通过字符数组实现的(如C语言),Java语言是通过字符串类实现的。
Java语言提供了三个字符串类:
String类、StringBuilder类和StringBuffer类。
String类是不变字符串,StringBuilder和StringBuffer是可变字符串,这3种字符串都是16位的Unicode字符序列,并且这3个类都被声明为final,因此不能被继承。
计算机科学技术发展异常徐速,内容更新很快。
Java语言作为面向对象的、跨平台的编程语言,迅速成为IT领域里的主流编程语言。
字符串作为计算机语言常用的处理对象,更加是Java中强大的处理能力的方法。
所以,对String类的方法的调用、实现以及对String类的高效操作更是体现了一个程序员的能力。
作为一个合格的程序员,只有多编写计算机程序和在计算机上调试程序,擦能把Java语言的语法规则、编程基本方法和技巧、各种算法编程实实在在的知识。
在此之前,熟悉各种Java的基本语言特性、语法规则,尤其是String类的掌握与应用就显得十分必要。
本次笔者利用Java语言提供的各种类包、方法以及各种接口,做了一个小型的可视化的String类的处理小工具,一方面是为了锻炼和强化自己的编程能力,另一方面,利用自己做的这个工具,可以很好的解决一些关于String类的小问题,解决一些实际方面的现实问题,从而将自己所学的知识运用的实际生活当中。
整个程序可以完成String字符串的一些常用处理,String类的基本功能都能完成,还做了可视化界面,方便用户的操作,使用起来更是简单易懂。
通过这个小程序,实为锻炼自己的所学。
由于制作时间有限,加之编者水平有限,不当之处在所难免,希望广大朋友批评指正。
摘要
本该设计要求实现jdk基础类库中String类的主要方法。
通过该题目的设计,培养学生面向对象程序设计的思想,要求学生达到熟练掌握Java语言的基本知识和技能,基本掌握面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
同时强调好的程序设计风格,提高解决实际问题的能力。
要求利用面向对象的方法以及Java的编程思想来完成系统的设计。
要求在设计的过程中,建立清晰的类层。
在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法。
在系统的设计中,要求运用面向对象的机制(继承、派生及多态性)来实现系统功能。
关键词:
String类;对象;Java;程序设计
目录
序言I
摘要II
一、系统分析与设计1
1.1功能分析1
1.2总体设计1
1.3系统类层次关系图2
二、详细设计3
2.1MainHS类的设计3
2.2Stringcp类的设计4
2.3其它界面子类的设计5
三、系统测试6
3.1常用的测试方法6
3.2测试方案6
3.3测试过程7
3.4测试结果11
四、软件说明书12
五、设计总结16
六、参考文献17
附录:
源代码(部分程序)18
一、系统分析与设计
1.1功能分析
进过对题目要求的仔细分析,要完成String类的基本功能,该系统的要求实现以下功能:
实现字符串的连接;
求字符串的长度;
求字符串中某个字符的位置;
实现字符串的比较;
实现字符串中提取某个子串;
字符串中字符大小写的转换;
字符串中指定字符的替换。
1.2总体设计
Java程序编辑器是:
图形界面、流与文件等技术的综合应用。
图形界面的实现:
考虑到简单、实用、高效等特点,就选择了Swing来完成实现,在选择组件上,选用了JFrame、Jbutton等作为主要的部件。
为了完成可视化的界面图形,用Java语言完成各个功能的实现,我借助了jdk1.7.25的开发环境,开发工具主要借助eclipse来完成,用到了Swing插件以及Swing提供的各种类包,来完成软件。
考虑到String类主要的功能实现,用到图形界面,我总共设计了10个大类来完成这个系统。
大致分为一个主界面类,一个实现方法的类,八个功能界面的类。
具体如下:
ClassMainHS//主界面类
ClassStringcp//所有方法实现的方法类
Classsub//字符串连接功能界面
Classsub2//字符串长度求取功能界面
Classsub3//字符串中某字符位置求取功能界面
Classsub4//两个字符串比较功能界面
Classsub5//提取字串功能界面
Classsub6//字符串大写字母—〉小写字母功能界面
Classsub7//字符串小写字母—〉大写字母功能界面
Classsub8//字符串中某字符替换的功能界面
1.3系统类层次关系图
图1.3.1为界面调用类的关系图,每个子块的功能实现君调用Stringcp类中的功能函数来实现。
图1.3.1
二、详细设计
2.1MainHS类的设计
MainHS一方面作为程序的主界面类,一方面作为整个程序的入口,主要以简单的界面方式做成,简单到只有八个按钮,主要作为程序入口介入功能。
主要实现代码如下:
frmString=newJFrame();
frmString.getContentPane().setEnabled(false);
frmString.setAlwaysOnTop(true);
frmString.setTitle("String\u7C7B\u5904\u7406");
frmString.setBounds(100,100,287,379);
frmString.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmString.getContentPane().setLayout(null)
JButtonbutton=newJButton("\u8FDE\u63A5");
button.setBackground(UIManager.getColor("Button.shadow"))
button.setBounds(0,0,276,45);
frmString.getContentPane().add(button);
其中每个按钮有一个事件监听,就给出一个例子,代码如下:
btnNewButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
sub2a=newsub2();
a.main(null);
}
2.2Stringcp类的设计
Stringcp类作为整个系统的核心运算部分,主要完成各个功能的实现,里边包含了八个功能实现函数,通过类的创建对象来实施调用,从而实现各个功能的实现。
其中主要包含的函数有:
(1)publicStringlink(Stringst1,Stringst2)
功能实现:
实现字符串的连接
实现方法:
通过字符串连接符“+”完成
(2)publicintLeng(Stringst)
功能实现:
求字符串的长度
实现方法:
通过length函数来完成
(3)publicstaticStringPl(Stringst,charx)
功能实现:
求字符串中某个字符的位置
参数说明:
x为st字符串中所要查找的字符
实现方法:
通过循环搜索来完成
(3)publicStringSstring(Stringst,inta,int)
功能实现:
实现字符串中提取某个子串
参数说明:
从a开始,从b结束
实现方法:
用函数substring()来实现
(4)publicStringSwitch(Stringst)
功能实现:
字符串中字符小写->大写的转换
实现方法:
用函数toLowerCase()来实现
(5)publicStringSwitch2(Stringst)
功能实现:
字符串中字符大写->小写的转换
实现方法:
用函数toUpperCse()来实现
(5)publicstaticStringZhchar(Stringst,intb,charx)
功能实现:
字符串中指定字符的替换
参数说明:
b表示要替换的位置,x表示替换的元素
(6)publicbooleanCp(Stringst1,Stringst2)
功能实现:
两个字符串比较,相等取true,不等取false
实现方法:
用equals()函数来实现
在功能子类中,用到了很多的方法,其中很多是java类库提供的方法,其中有charAt(intindex)(返回字符串index位置处的字符)、String.valueOf(inti)(将inti转换成String类型)、String.vlaueOf(char[]index)(将index字符数组转换成String类型)等等的函数。
2.3其它界面子类的设计
其它功能子类的设计大多相似,主要用了各种的文本窗口(JTextField)和各种的按钮(JButton)以及各种事件监听(addActionListener)来实现功能。
其主要用到的成员定义如下:
privateJFrameframe;
privateJTextFieldtextField;//文本输入框的定义
privateJTextFieldtextField_1;
privateJTextFieldtextField_2;
JButtonbutton=newJButton();//按钮的定义
子类主要是通过文本框和按钮来实现,在文本框中输入相应的内容,点击相应的按钮,在结果处就会看到相对应的结果,完成String类处理的功能。
事件监听按钮主要通过(button.addActionListener(newActionListener())方法来实现,通过调用Stringcp类中的方法,来实现相应的功能,下方为一个具体的例子:
publicvoidactionPerformed(ActionEvente){
Stringp=newString(textField.getText());
Stringp2=newString(textField_1.getText());
Stringcpa=newStringcp();
Stringp3=a.link(p,p2);
textField_2.setText(p3);
}
三、系统测试
3.1常用的测试方法
软件测试非方法有很多,比如
1)β测试,英文是Betatesting。
又称Beta测试,用户验收测试(UAT)。
2)α测试,英文是Alphatesting。
又称Alpha测试。
3)可移植性测试,英文是Portabilitytesting。
又称兼容性测试。
4)用户界面测试,英文是Userinterfacetesting。
又称UI测试。
5)冒烟测试,英文是Smoketesting。
6)随机测试,英文是Adhoctesting。
7)白盒测试。
8)黑盒测试。
9)自动化测试。
10)回归测试。
11)验收测试。
12)动态测试等等。
3.2测试方案
本系统采用的是黑盒测试,采用各个字符串进行测试。
3.3测试过程
1.主界面测试:
测试结果如下:
2.字符串连接测试:
测试用例:
字符串1输入:
asdfiop
字符串2输入:
dsopirps
测试结果如下:
3.字符串长度测试:
测试用例:
输入字符串:
sioealkjsdfao
测试结果如下:
4.字符串位置测试:
测试用例:
输入字符串:
asdfiiasdfaerda
要查找字符:
a
测试结果如下:
5.字符串比较测试:
测试用例(2组):
(1)字符串1输入:
asdfpoi
字符串2输入:
asdfpol
测试结果如下:
(2)字符串1输入:
abcdejkl
字符串2输入:
abcdejkl
测试结果如下:
6.提取子串测试:
测试用例:
输入字符串:
Helloworld!
起始位置:
3
结束位置:
10
测试结果如下:
7.大写字母->小写字母测试:
测试用例:
输入字符串:
whosYOURdaddy
测试结果如下:
8.小写字母->大写字母测试:
测试用例:
输入字符串:
whosYOURdaddy
测试结果如下:
9.字符替换测试:
测试用例:
输入字符串:
Showmethemoney
输入要改变第几个字符:
5
输入要改成的目标字符:
9
测试结果如下:
3.4测试结果
经过测试,所得结果与预期完全一致。
四、软件说明书
运行功能及其所用附件功能在可视化窗口已经详细列出,按照界面窗口的提示,按步骤输入,即可得到正确的结果。
所有功能如下图所示:
1.字符串连接
2.字符串长度求取
3.字符位置求取
4.字符串比较
5.提取子串
6.大写字母->小写字母
7.小写字母->大写字母
8.字符替换
只要按照提示一步步输入,就可以得到正确结果。
五、设计总结
经过两个星期的努力,完成了此次课程设计。
通过这次的课程设计,将书本上的知识运用到实践上,从而进一步巩固和丰富所学知识,也让我更加深层次的认识了java及其功能的强大。
为了更好地完成这次课程设计,我上网查阅资料,到图书馆翻阅书籍。
这个过程中也锻炼了我的思维分析、遇到问题及想法设法通过各种途径解决问题的能力。
本次课程设计要求以图形用户界面技术来实现,用到许多GUI的知识,比如:
各种组件、容器、布局管理、事件监听、事件响应等。
因此我了解了更多的GUI方面的知识。
在课程设计过程中,在把书本上的知识给系统的复习了一下的同时,同时也发现了自己的太多不足,对java语言整体知识构架不够熟悉,不能灵活地运用所学的知识点,掌握的知识不够多,在课程设计过程中遇到了许多困难,因此应该在将来学习更多的java方面的知识。
六、参考文献
[1]曲朝阳,杨杰明等.Java程序设计.北京:
清华大学出版社,2008.10
[2]耿祥以,张跃平.Java大学生实用教程.北京:
电子工业出版社,2012.6
[3]明日科技.Java经典编程.北京:
清华大学出版社,2012.10
[4]李尊朝,苏军.Java语言程序设计.北京:
中国铁道出版社,2004.2
[5]王博.面向对象的建模、设计技术与方法.北京希望电脑公司,1990.
附录:
源代码(部分程序)
publicclassStringcp{
publicStringlink(Stringst1,Stringst2)
//实现字符串的连接;
{
Stringst3;
st3=st1+st2;
returnst3;
}
publicintLeng(Stringst)
//求字符串的长度
{
inta;
a=st.length();
returna;
}
publicstaticStringPl(Stringst,charx)
//求字符串中某个字符的位置
//x为st字符串中所要查找的字符
{
chara[]=st.toCharArray();
inti,k,p=0;
Stringc="";
k=a.length;
for(i=0;i { if(a[i]==x) { Stringj=String.valueOf(i+1);//将int->String c=c+j+""; p++; } } if(p==0) return"所查找的字符不在串中"; else returnc; } publicStringSstring(Stringst,inta,intb) //实现字符串中提取某个子串 //从a开始,从b结束 { Stringcmst; cmst=st.substring(a,b); returncmst; } publicStringSwitch(Stringst) //字符串中字符小写->大写的转换 { Strings=st.toUpperCase(); returns; } publicStringSwitch2(Stringst) //字符串中字符大写->小写的转换 { returnst.toLowerCase(); } publicstaticStringZhchar(Stringst,intb,charx) //字符串中指定字符的替换 //b表示要替换的位置,x表示替换的元素 { chara[]; inti,k; a=st.toCharArray(); k=st.length(); for(i=0;i { if(i==(b-1)) { a[i]=x; } } Stringp=String.valueOf(a);//将a[]->String returnp; } publicbooleanCp(Stringst1,Stringst2) //两个字符串比较,相等取true,不等取false { booleanx; x=st1.equals(st2); returnx; } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- String 实现 说明书