StringBuilder类中常用方法及应用举例

1.简介

String类是final类型的,所以使用String定义的字符串是一个常量,因此一旦创建,内容和长度不可改变。如果需要修改,必须要新建一个字符串。

StringBuffer类和String类的最大区别在于它的长度和内容都可以进行多次修改。StringBuffer类似一个容器,当在其中添加或删除时,容器不会变化,不会产生新的字符串对象。

StringBuffer对象则代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append()、insert()、reverse()、setCharAt()、setLength()等方法可以改变这个字符串对象的字符序列。一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString()方法将其转换为一个String对象。

2.StringBuffer类的初始化方式

val sb=new StringBuilder()
val sb = new StringBuilder(10)

3.常用方法

3.1 append()

连接

sb.append("Runoob..")

sb.append("!")

3.2 reverse()

反转

sb.reverse()

3.3 insert()

添加

sb.insert(8,"Java")

3.4 delete()

删除

sb.delete(5,8)

设计模式是一种解决特定问题的方案,是经过多年实践和总结得出的一套经验。 Java中的设计模式可以分为三大:创建型模式、结构型模式和行为型模式。 1. 创建型模式 创建型模式是用于创建对象的模式,包括单例模式、工厂模式、抽象工厂模式、建造者模式和原型模式。 - 单例模式:保证一个只有一个实例,并提供全局访问点。例如,JVM中的Runtime就是一个单例模式,确保在一个JVM进程中只会有一个Runtime实例。 - 工厂模式:用于创建同一种型的不同对象。例如,IO流中的InputStream和OutputStream就是通过工厂方法创建的。 - 抽象工厂模式:用于创建一组相关或相互依赖的对象。例如,Swing中的LookAndFeel就是一个抽象工厂模式。 - 建造者模式:用于创建复杂对象,将对象的构建过程分离出来,使其更加灵活。例如,StringBuilder就是一个建造者模式。 - 原型模式:用于创建一个对象的副本,可以减少对象的创建次数。例如,Java中的clone()方法就是原型模式的实现。 2. 结构型模式 结构型模式是用于处理或对象之间的关系的模式,包括适配器模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式和代理模式。 - 适配器模式:将一个的接口转换成客户端所期望的另一种接口。例如,Arrays.asList()方法就是一个适配器模式。 - 桥接模式:将抽象部分和实现部分分离,使它们可以独立变化。例如,JDBC中的DriverManager就是一个桥接模式。 - 组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构,使得客户端可以统一处理单个对象和组合对象。例如,Swing中的组件就是使用组合模式构建的UI界面。 - 装饰器模式:动态地给一个对象添加额外的职责,是继承的一种替代方案。例如,Java IO中的BufferedInputStream就是一个装饰器模式。 - 外观模式:为子系统中的一组接口提供一个统一的接口,使得子系统更加易于使用。例如,Spring框架中的Facade就是一个外观模式。 - 享元模式:共享对象以减少内存的使用,适用于大量细粒度的对象。例如,String Pool就是一个享元模式。 - 代理模式:为其他对象提供一种代理以控制对这个对象的访问。例如,Java中的动态代理就是一个代理模式的实现。 3. 行为型模式 行为型模式是用于描述对象之间的通信和协作的模式,包括责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。 - 责任链模式:将请求的发送者和接收者解耦,使得多个对象都有机会处理该请求。例如,Servlet中的Filter就是一个责任链模式。 - 命令模式:将请求封装成一个对象,从而可以使用不同的请求来参数化其他对象。例如,Java中的Runnable就是一个命令模式的实现。 - 解释器模式:定义语言的文法,并用该文法解释语言中的句子。例如,正则表达式就可以使用解释器模式进行解析。 - 迭代器模式:提供一种方法来访问一个容器对象中的各个元素,而又不暴露该对象的内部细节。例如,Java中的Iterator就是一个迭代器模式的实现。 - 中介者模式:用一个中介对象来封装一系列的对象交互,使得各个对象之间不再直接交互。例如,Swing中的Mediator就是一个中介者模式。 - 备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。例如,Java中的Serializable就可以实现备忘录模式的效果。 - 观察者模式:定义了对象之间一种一对多的依赖关系,使得每当一个对象改变状态时,其所有依赖者都会被通知并更新。例如,Java中的观察者模式的实现就是使用了Observable和Observer接口。 - 状态模式:允许一个对象在其内部状态改变时改变它的行为。例如,Swing中的JButton就是一个状态模式。 - 策略模式:定义了一系列算法,并将每个算法封装起来,使得它们可以互换。例如,Java中的Comparator就是一个策略模式的实现。 - 模板方法模式:定义了一个算法的骨架,将一些步骤延迟到子中实现。例如,Java中的Servlet就是一个模板方法模式的实现。 - 访问者模式:将算法与对象结构分离开来,使得算法可以独立于对象结构而变化。例如,Java中的DOM解析器就是一个访问者模式的实现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值