The String class is provided in the Java library. Provide your own implementation for the following

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;
//			
//		}
//	}  	
};


猜你喜欢

转载自blog.csdn.net/hongdeng123/article/details/53169610