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

本文介绍了一个自定义的Java字符串类MyString1的实现,包括构造方法、获取字符、获取长度、截取子串、转换为小写、字符串比较等方法。通过具体示例展示了如何使用这些方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值