The String class is provided in the Java library. Provide your ownimplementation for the following methods (name the new class MyString1 ):
public MyString1(char[] chars);
public char charAt(int index);
public int length();
public MyString1 substring(int begin, intend);
public MyString1 toLowerCase();
public boolean equals(MyString1 s);
public class Test {
public static void main(String[] args) {
char[] char1={'j','a','v','a'};
char[] char2={'S','T','R','I','N','G'};
MyString string1=new MyString(char1);
MyString string2=new MyString(char2);
MyString a;
System.out.print("string1 = "); string1.showMyString();
System.out.print("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();
a.showMyString();
// System.out.println("比较string1和s1大小 "+string1.compare(s1));
System.out.println("求string2的子串 :string2.substring(3)");
a=string2.substring(3);
a.showMyString();
System.out.println("求string2的子串:string2.substring(3, 5) ");
a=string2.substring(3, 5);
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<this.stringChar.length;a++)
{
System.out.print(this.stringChar[a]);
}
System.out.println();
}
public char charAt(int index) //返回指定位置的char值
{
return stringChar[index-1];
}
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<end;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<this.length();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) //判断两个字符串是否相等
{
int a=0;
for(a=1;a<=s.length();a++)
{
if(s.charAt(a)!=this.charAt(a))
{return false;}
}
return true;
}
// public static MyString valueOf(int i) //返回表示int值的字符串表示
// {
// char[] newchar=new char[1];
// newchar[0]=(char)(i+(int)'0');
// MyString newString=new MyString(newchar);
// return newString;
// }
// public int compare(String s) //比较字符串大小
// {
// int a=0;
// for(a=1;a<=s.length();a++)
// {
// if((int)stringChar[a-1]>(int)s.charAt(a))
// {
// return 1; //大于s
// }
// if((int)s.charAt(a)>(int)stringChar[a-1])
// {
// return -1; //小于s
// }
// }
// return 0; //等于s
// }
public MyString substring(int begin) //求冲begin开始的子窜(begin《this。length())
{
char[] newchar=new char[1+this.length()-begin];
int a=0;
for(a=0;a<=this.length()-begin;a++)
{
newchar[a]=stringChar[a+begin-1];
}
MyString newString=new MyString(newchar);
return newString;
}
// public MyString toUpperCase() //将字符串小写换成大写
// {
// int a=0;
// int b=(int)'a'-(int)'A'; //大小写之间的差值 (a>A)
// char[] newString=new char[(int)this.length()];
// for(a=0;a<this.length();a++)
// {
// if((int)stringChar[a]>=(int)'a'&&(int)stringChar[a]<=(int)'z')
// {
// newString[a]=(char)((int)stringChar[a]-b);
// }
// else
// {
// newString[a]=stringChar[a];
// }
// }
// MyString string0=new MyString(newString);
// return string0;
//
// }
public char[] toChars() //返回字符串数组
{
return this.stringChar;
}
// public static MyString valueOf(boolean b) //将b换成字符串
// {
// if(b)
// {
// char[] newchar={'t','r','u','e'};
// MyString newString=new MyString(newchar);
// return newString;
// }
// else
// {
// char[] newchar={'f','a','l','s','e'};
// MyString newString=new MyString(newchar);
// return newString;
//
// }
// }
};