String类的实现说明书.docx

上传人:b****3 文档编号:12860040 上传时间:2023-04-22 格式:DOCX 页数:22 大小:114.78KB
下载 相关 举报
String类的实现说明书.docx_第1页
第1页 / 共22页
String类的实现说明书.docx_第2页
第2页 / 共22页
String类的实现说明书.docx_第3页
第3页 / 共22页
String类的实现说明书.docx_第4页
第4页 / 共22页
String类的实现说明书.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

String类的实现说明书.docx

《String类的实现说明书.docx》由会员分享,可在线阅读,更多相关《String类的实现说明书.docx(22页珍藏版)》请在冰豆网上搜索。

String类的实现说明书.docx

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;

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1