java:用String类手写模拟一下StringBuilder类

StringBuilder的常用方法:

1、append(String str):字符串连接,在原有的字符串之后连接str,也可以是append(int str),即把整形转换为string再连接;

2、toString():返回一个与构建起或缓冲器内容相同的字符串;

3、length():返回字符串的长度;

4、charAt(int index):返回在下表为index的字符

5、toLowerCase():大写字母格式化为小写

6、subString(int begin,int end):截取begin~end的字符,不包括end。

还有好多方法,这里不列举出来了,代码如下:

MyStringBuilder类:
package num;

public class MyStringBuilder {
	
	private char[] value;
	private int count;
	
	public MyStringBuilder(String  s) {
		count = s.length();
		value = new char[1000];
		value = s.toCharArray();
	}
	public MyStringBuilder append(MyStringBuilder  s){
		count += s.count;
		value = String.valueOf(value).concat(String.valueOf(s.value)).toCharArray();
		return this;
	}
	public MyStringBuilder append(int i) {
		value = String.valueOf(value).concat(String.valueOf(i)).toCharArray();
		count += String.valueOf(i).length();
		return this;
	}
	public int length(){
		return count;
	}
	public char charAt(int index) {
		char x = value[index];
		return x;
	}
	public MyStringBuilder toLowerCase() {
		value=String.valueOf(value).toLowerCase().toCharArray();
		return this;
	}
	public MyStringBuilder subString(int begin,int end) {
		char x[] = new char[end-begin+2];
		for(int i=0;i<end-begin;i++)
		{
			x[i]=value[i+begin];
		}
		MyStringBuilder ans = new MyStringBuilder(String.valueOf(x));
		return ans;
	}
	public String toString() {
		String x = String.valueOf(value);
		return x;
	}
}

主类:
package num;

import java.util.Scanner;
public class mystringmain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan = new Scanner(System.in);
		MyStringBuilder ans = new MyStringBuilder(scan.next());
		MyStringBuilder ex = new MyStringBuilder(scan.next());
		int x=-100;
		System.out.println("长度:"+ans.length());
		System.out.println("输出第4个字符:"+ans.toString().toCharArray()[3]);
		System.out.println("连接ans和ex:"+String.valueOf(ans.append(ex).toString().toCharArray()));
		System.out.println("连接ans和x:"+String.valueOf(ans.append(x).toString().toCharArray()));
		System.out.println("截取第2~6的字段:"+String.valueOf(ans.subString(2,6).toString().toCharArray()));
		System.out.println("大写变小写:"+String.valueOf(ans.toLowerCase().toString().toCharArray()));
	}
}

预览如下:

在这里插入图片描述

写在后面

时间好比一位妙手成春的良医,它能帮助我们医治流血的心灵。时间犹如一个万能的慰藉者,它能开导我们忘记人生的伤痛。时间有如一位循循善诱的智者,他能引导求学者构筑知识的大厦。时间好比一位点屏成蝇的画家,他会帮助勤奋者描绘辉煌的明天。
在这里插入图片描述

发布了46 篇原创文章 · 获赞 237 · 访问量 6023

猜你喜欢

转载自blog.csdn.net/weixin_43912621/article/details/105138768