1、String类的实现说明书序言字符串是字符的序列,它是许多程序设计语言的基本数据结构。有些语言中的字符串是通过字符数组实现的(如C语言),Java语言是通过字符串类实现的。Java语言提供了三个字符串类:String类、StringBuilder类和StringBuffer类。String类是不变字符串,StringBuilder和StringBuffer是可变字符串,这3种字符串都是16位的Unicode字符序列,并且这3个类都被声明为final,因此不能被继承。计算机科学技术发展异常徐速,内容更新很快。Java语言作为面向对象的、跨平台的编程语言,迅速成为IT领域里的主流编程语言。字符串作
2、为计算机语言常用的处理对象,更加是Java中强大的处理能力的方法。所以,对String类的方法的调用、实现以及对String类的高效操作更是体现了一个程序员的能力。作为一个合格的程序员,只有多编写计算机程序和在计算机上调试程序,擦能把Java语言的语法规则、编程基本方法和技巧、各种算法编程实实在在的知识。在此之前,熟悉各种Java的基本语言特性、语法规则,尤其是String类的掌握与应用就显得十分必要。本次笔者利用Java语言提供的各种类包、方法以及各种接口,做了一个小型的可视化的String类的处理小工具,一方面是为了锻炼和强化自己的编程能力,另一方面,利用自己做的这个工具,可以很好的解决一
3、些关于String类的小问题,解决一些实际方面的现实问题,从而将自己所学的知识运用的实际生活当中。整个程序可以完成String字符串的一些常用处理,String类的基本功能都能完成,还做了可视化界面,方便用户的操作,使用起来更是简单易懂。通过这个小程序,实为锻炼自己的所学。由于制作时间有限,加之编者水平有限,不当之处在所难免,希望广大朋友批评指正。摘要本该设计要求实现jdk基础类库中String类的主要方法。通过该题目的设计,培养学生面向对象程序设计的思想,要求学生达到熟练掌握Java语言的基本知识和技能,基本掌握面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对
4、象程序设计问题。同时强调好的程序设计风格,提高解决实际问题的能力。要求利用面向对象的方法以及Java的编程思想来完成系统的设计。要求在设计的过程中,建立清晰的类层。在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法。在系统的设计中,要求运用面向对象的机制(继承、派生及多态性)来实现系统功能。关键词:String类;对象;Java;程序设计目录序言 I摘要 II一、 系统分析与设计 11.1功能分析 11.2总体设计 11.3系统类层次关系图 2二、 详细设计 32.1MainHS类的设计 32.2 Stringcp类的设计 42.3 其它界面子类的设计 5三、 系统测试 63.1 常
5、用的测试方法 63.2 测试方案 63.3 测试过程 73.4 测试结果 11四、 软件说明书 12五、设计总结 16六、参考文献 17附录:源代码(部分程序) 18一、 系统分析与设计1.1功能分析进过对题目要求的仔细分析,要完成String类的基本功能,该系统的要求实现以下功能:实现字符串的连接;求字符串的长度;求字符串中某个字符的位置;实现字符串的比较;实现字符串中提取某个子串;字符串中字符大小写的转换;字符串中指定字符的替换。1.2总体设计 Java程序编辑器是:图形界面、流与文件等技术的综合应用。图形界面的实现:考虑到简单、实用、高效等特点,就选择了Swing来完成实现,在选择组件上
6、,选用了JFrame、Jbutton等作为主要的部件。为了完成可视化的界面图形,用Java语言完成各个功能的实现,我借助了jdk1.7.25的开发环境,开发工具主要借助eclipse来完成,用到了Swing插件以及Swing提供的各种类包,来完成软件。考虑到String类主要的功能实现,用到图形界面,我总共设计了10个大类来完成这个系统。大致分为一个主界面类,一个实现方法的类,八个功能界面的类。具体如下:Class MainHS /主界面类Class Stringcp /所有方法实现的方法类Class sub /字符串连接功能界面Class sub2 /字符串长度求取功能界面Class sub
7、3 /字符串中某字符位置求取功能界面Class sub4 /两个字符串比较功能界面Class sub5 /提取字串功能界面Class sub6 /字符串大写字母小写字母功能界面Class sub7 /字符串小写字母大写字母功能界面Class sub8 /字符串中某字符替换的功能界面1.3系统类层次关系图图1.3.1为界面调用类的关系图,每个子块的功能实现君调用Stringcp类中的功能函数来实现。 图1.3.1二、 详细设计 2.1MainHS类的设计MainHS一方面作为程序的主界面类,一方面作为整个程序的入口,主要以简单的界面方式做成,简单到只有八个按钮,主要作为程序入口介入功能。主要实现
8、代码如下:frmString = new JFrame();frmString.getContentPane().setEnabled(false);frmString.setAlwaysOnTop(true);frmString.setTitle(Stringu7C7Bu5904u7406);frmString.setBounds(100, 100, 287, 379);frmString.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frmString.getContentPane().setLayout(null)JButton butto
9、n = new JButton(u8FDEu63A5);button.setBackground(UIManager.getColor(Button.shadow)button.setBounds(0, 0, 276, 45);frmString.getContentPane().add(button);其中每个按钮有一个事件监听,就给出一个例子,代码如下:btnNewButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) sub2 a = new sub2(); a.ma
10、in(null);2.2 Stringcp类的设计 Stringcp类作为整个系统的核心运算部分,主要完成各个功能的实现,里边包含了八个功能实现函数,通过类的创建对象来实施调用,从而实现各个功能的实现。其中主要包含的函数有:(1) public String link(String st1,String st2)功能实现:实现字符串的连接 实现方法:通过字符串连接符“+”完成(2) public int Leng(String st) 功能实现:求字符串的长度实现方法:通过length函数来完成(3)public static String Pl(String st,char x)功能实现:求
11、字符串中某个字符的位置参数说明:x为st字符串中所要查找的字符实现方法:通过循环搜索来完成(3) public String Sstring(String st,int a,int)功能实现:实现字符串中提取某个子串参数说明:从a开始,从b结束实现方法:用函数substring()来实现(4) public String Switch(String st)功能实现:字符串中字符小写-大写的转换实现方法:用函数toLowerCase()来实现(5)public String Switch2(String st) 功能实现:字符串中字符大写-小写的转换实现方法:用函数toUpperCse()来实现
12、(5) public static String Zhchar(String st,int b,char x)功能实现:字符串中指定字符的替换参数说明:b表示要替换的位置,x表示替换的元素(6)public boolean Cp(String st1,String st2) 功能实现:两个字符串比较,相等取true,不等取false 实现方法:用equals()函数来实现在功能子类中,用到了很多的方法,其中很多是java类库提供的方法,其中有charAt(int index)(返回字符串index位置处的字符)、String.valueOf(int i)(将int i 转换成String类型)
13、、String.vlaueOf(char index)(将index字符数组转换成String类型)等等的函数。2.3 其它界面子类的设计 其它功能子类的设计大多相似,主要用了各种的文本窗口(JTextField)和各种的按钮(JButton)以及各种事件监听(addActionListener)来实现功能。其主要用到的成员定义如下:private JFrame frame; private JTextField textField; /文本输入框的定义 private JTextField textField_1; private JTextField textField_2;JButton
14、 button = new JButton(); /按钮的定义子类主要是通过文本框和按钮来实现,在文本框中输入相应的内容,点击相应的按钮,在结果处就会看到相对应的结果,完成String类处理的功能。事件监听按钮主要通过(button.addActionListener(new ActionListener() 方法来实现,通过调用Stringcp类中的方法,来实现相应的功能,下方为一个具体的例子:public void actionPerformed(ActionEvent e) String p = new String(textField.getText();String p2 = new
15、 String(textField_1.getText();Stringcp a = new Stringcp();String p3=a.link(p, p2);textField_2.setText(p3);三、 系统测试3.1 常用的测试方法软件测试非方法有很多,比如1)测试,英文是Beta testing。又称Beta测试,用户验收测试(UAT)。2)测试,英文是Alpha testing。又称Alpha测试。3)可移植性测试,英文是Portability testing。又称兼容性测试。4)用户界面测试,英文是User interface testing。又称UI测试。5)冒烟测试,
16、英文是Smoke testing。6)随机测试,英文是Ad hoc testing。7)白盒测试。8)黑盒测试。9)自动化测试。10)回归测试。11)验收测试。12)动态测试等等。3.2 测试方案 本系统采用的是黑盒测试,采用各个字符串进行测试。3.3 测试过程1.主界面测试:测试结果如下:2.字符串连接测试: 测试用例: 字符串1输入:asdfiop 字符串2输入:dsopirps测试结果如下:3.字符串长度测试: 测试用例: 输入字符串:sioealkjsdfao测试结果如下:4.字符串位置测试:测试用例:输入字符串:asdfiiasdfaerda要查找字符:a测试结果如下:5.字符串比较
17、测试: 测试用例(2组):(1) 字符串1输入:asdfpoi字符串2输入:asdfpol测试结果如下:(2) 字符串1输入:abcdejkl字符串2输入:abcdejkl测试结果如下:6.提取子串测试:测试用例:输入字符串:Hello world!起始位置:3结束位置:10测试结果如下:7.大写字母-小写字母测试: 测试用例: 输入字符串:whosYOURdaddy 测试结果如下:8.小写字母-大写字母测试: 测试用例: 输入字符串:whosYOURdaddy 测试结果如下:9.字符替换测试: 测试用例: 输入字符串:Showmethemoney 输入要改变第几个字符:5 输入要改成的目标字
18、符:9 测试结果如下:3.4 测试结果 经过测试,所得结果与预期完全一致。四、 软件说明书 运行功能及其所用附件功能在可视化窗口已经详细列出,按照界面窗口的提示,按步骤输入,即可得到正确的结果。 所有功能如下图所示:1字符串连接2.字符串长度求取3.字符位置求取4.字符串比较5.提取子串6.大写字母-小写字母7小写字母-大写字母8.字符替换只要按照提示一步步输入,就可以得到正确结果。五、设计总结经过两个星期的努力,完成了此次课程设计。通过这次的课程设计,将书本上的知识运用到实践上,从而进一步巩固和丰富所学知识,也让我更加深层次的认识了java及其功能的强大。为了更好地完成这次课程设计,我上网查
19、阅资料,到图书馆翻阅书籍。这个过程中也锻炼了我的思维分析、遇到问题及想法设法通过各种途径解决问题的能力。本次课程设计要求以图形用户界面技术来实现,用到许多GUI的知识,比如:各种组件、容器、布局管理、事件监听、事件响应等。因此我了解了更多的GUI方面的知识。在课程设计过程中,在把书本上的知识给系统的复习了一下的同时,同时也发现了自己的太多不足,对java语言整体知识构架不够熟悉,不能灵活地运用所学的知识点,掌握的知识不够多,在课程设计过程中遇到了许多困难,因此应该在将来学习更多的java方面的知识。六、参考文献1曲朝阳,杨杰明等.Java程序设计. 北京: 清华大学出版社,2008.102耿祥
20、以,张跃平.Java大学生实用教程. 北京: 电子工业出版社,2012.6 3明日科技.Java经典编程.北京:清华大学出版社,2012.104李尊朝,苏军.Java语言程序设计.北京:中国铁道出版社,2004.25王博. 面向对象的建模、设计技术与方法. 北京希望电脑公司,1990.附录:源代码(部分程序)public class Stringcp public String link(String st1,String st2) /实现字符串的连接; String st3; st3=st1+st2; return st3; public int Leng(String st) /求字符串的
21、长度 int a; a = st.length(); return a; public static String Pl(String st,char x) /求字符串中某个字符的位置 /x为st字符串中所要查找的字符 char a=st.toCharArray(); int i,k,p=0; String c= ; k=a.length; for(i=0;iString c=c+j+ ; p+; if(p=0) return 所查找的字符不在串中; else return c; public String Sstring(String st,int a,int b) /实现字符串中提取某个子
22、串 /从a开始,从b结束 String cmst; cmst=st.substring(a,b); return cmst; public String Switch(String st) /字符串中字符小写-大写的转换 String s=st.toUpperCase(); return s; public String Switch2(String st) /字符串中字符大写-小写的转换 return st.toLowerCase(); public static String Zhchar(String st,int b,char x) /字符串中指定字符的替换 /b表示要替换的位置,x表示替换的元素 char a; int i,k; a = st.toCharArray(); k = st.length(); for(i=0;iString return p; public boolean Cp(String st1,String st2) /两个字符串比较,相等取true,不等取false boolean x; x = st1.equals(st2); return x;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1