实验四 实现字符串类
- 格式:docx
- 大小:139.05 KB
- 文档页数:12
中南大学 Java实验报告
学生姓名 学生学号 题 目 实验四 实现字符串类 专业班级 完成时间 2014年1月7日 JAVA实验报告_彭澍
第 2 页 共 12 页 目 录
1.问题描述 ....................................... 3 一、实验目的 .................................. 3 二、实验开发环境和工具 ........................ 3 三、实验内容 .................................. 3
2.设计简要描述 ................................... 4 3.程序清单 ....................................... 5 4.结果分析 ...................................... 10 5.调试报告 ...................................... 11 JAVA实验报告_彭澍
第 3 页 共 12 页 实验四 实现字符串类
1.问题描述 一、 实验目的 1.了解和掌握String类的实现原理 二、实验开发环境和工具 可以在Linux或者Windows操作系统上搭建开发环境,可使用集成开发环境Eclipse,使用Java语言,工具包使用JDK1.8。
三、实验内容 String是Java类库提供的类,为了了解String类的实现原理,采用字符数组来实现字符串类(可命名为MyString),实现字符串类的如下方法:
public MyString(char[] chars); public char charAt(int index); JAVA实验报告_彭澍 第 4 页 共 12 页 public int length(); public MyString substring(int begin, int end); public MyString toLowerCase(); public boolean equals(MyString s); public static MyString valueOf(int i); public int compare(String s); public MyString substring(int begin); public MyString toUpperCase(); public char[] toChars(); public static MyString valueOf(boolean b);
2.设计简要描述 本实验主要包含两个类 : public class MyString //新字符串类 public class test //测试类
stringChar:char[] //私有字符串数组 MyString(char[] chars) //构造函数 showMyString():void //显示字符串 charAt(index:int):char //返回指定位置的char值 length():int //返回字符串长度 JAVA实验报告_彭澍 第 5 页 共 12 页 substring(begin:int,end:int):MyString //将字符串begin——end位置的字符换成新的字符串 toLowerCase():MyString //将所有字符串都换成小写 equals(s:MyString):boolean //判断两个字符串是否相等 static valueOf(int i):MyString //返回表示int值的字符串表示 compare(String s):int //比较字符串大小 substring(begin:int):MyString //求冲begin开始的子串 toUpperCase():MyString //将字符串小写换成大写 toChars():char[] //返回字符串数组 static valueOf(b:boolean):MyString //将b换成字符串
3.程序清单 package 字符串; class test { public static void main(String[] args) { char[] tschar1={'c','a','v','e'}; char[] tschar2={'S','T','R','O','N','G'}; String s1="STRING"; MyString string1=new MyString(tschar1); MyString string2=new MyString(tschar2); MyString a; System.out.println("string1="); string1.showMyString(); System.out.println("string2="); string2.showMyString(); System.out.println("the length of string1 "+string1.length()); System.out.println("the length of string2 "+string2.length()); System.out.println("将string2 换成小写 "); a=string2.toLowerCase(); JAVA实验报告_彭澍 第 6 页 共 12 页 a.showMyString(); System.out.println("将string1换成大写 "); a=string1.toUpperCase(); a.showMyString(); System.out.println("比较string1和s1大小 "+string1.compare(s1)); System.out.println("求string2的子串 :string2.substring(4)"); a=string2.substring(4); a.showMyString(); System.out.println("求string2的子串:string2.substring(2, 6) "); a=string2.substring(2, 6); a.showMyString(); System.out.println("判断string1,string2是否相等"+string1.equals(string2)); System.out.println("MyString.valueof(false)= "); a=MyString.valueOf(false); a.showMyString(); System.out.println("MyString.valueof(1) "); a=MyString.valueOf(1); a.showMyString(); }
} class MyString { private char[] stringChar;
public MyString(char[] chars) //构造函数 { stringChar=chars; }
public void showMyString() //显示字符串 { int a=0; for(a=0;a{ System.out.print(this.stringChar[a]); } System.out.println(); }
public char charAt(int index) //返回指定位置的char值 { return stringChar[index-1]; JAVA实验报告_彭澍 第 7 页 共 12 页 } public int length() //返回字符串长度 { return stringChar.length; }
public MyString substring(int begin, int end) //将字符串begin——end位置的字符换成新的字符串 { char[] string=new char[end-begin+1]; int a=0; int b=0; for(a=begin-1;a{ string[b]=this.stringChar[a]; b++; } MyString newString=new MyString(string); return newString; }
public MyString toLowerCase() //将所有字符串都换成小写 { int a=0; int b=((int)'a'-(int)'A'); //大小写之间的差值 (a>A) char[] newString=new char[(int)this.length()]; for(a=0;a{
if((int)stringChar[a]>=(int)'A'&&(int)stringChar[a]<=(int)'Z') { newString[a]=(char)((int)this.stringChar[a]+b); } else { newString[a]=stringChar[a]; } } MyString string0=new MyString(newString); return string0; }
public boolean equals(MyString s) //判断两个字符串是否相等