JAVA StringBuilder类 可增删的字符串

//StringBuilder

//String类是 final,无法被继承的;所以StringBuilder并不是继承自String类;

//  而String内部维护的object[]数组也是final,无法被 修改

// String是无法被修改的,而平时对String的修改,其实是新建了一个String对象;

//如果需要频繁修改字符串的内容,建议使用 StringBuilder

// StringBuilder 其实就是一个存储字符的容器,也是内部维护了一个char[]数组;

// StringBuilder的初始长度为16, 如果capacity的容量不够,增长的方式为 capacity * 2 + 2

// 容器具备的行为:

//  StringBuilder

//    增加

//            append( Object e )  追加到字符串的末尾(可以追加任意类型的数据);

//            insert( int offset, Object e ) 插入元素到指定位置;(可以查任意类型数据)

//    删除

//   delete( int startIndex, int endIndex ); 根据指定的开始与结束的索引值删除对应的内容

//   deleteCharAt( int index );  根据指定的索引值删除一个字符

//    修改

//   setCharAt( int index, char ch );  替换掉指定位置的字符

//   replace( int start, int end, String str ); 根据指定范围内的子串

//   reverse(); 翻转字符串缓冲类的内容

//    截取

//        String subString( int start, int end ); 根据指定的索引值截取子串

//   String subString( int start );

//   ensureCapacity( int minimumCapacity );指定StringBuffer内部的字符数组容量

//    查看

//    判断

public class Demo3 {

public static void main( String[] args ){

StringBuilder sb = new StringBuilder();

//容器String追加  append

sb.append( "hello" );

sb.append( " " );

sb.append( "world" );

System.out.println( sb );

//

//增加 ---> 插入

sb.insert( 0 , "say ");

sb.insert( sb.length() , "!");

System.out.println( sb );

//删除

sb.delete( 0 , 4); // startIndex, endIndex

System.out.println( sb );

sb.deleteCharAt( 3 );

System.out.println( sb );

//修改

//翻转字符串

sb.reverse();

System.out.println( sb );

//替换指定位置的字符

sb.setCharAt( 0 ,  '@' );

System.out.println( sb );

//替换自定位置的字符串

sb.replace( 1 , 3, "#¥%");

System.out.println( sb );

//截取

String s = sb.substring( 4 );

System.out.println( s );

//查看

char ch = sb.charAt( 0 );

int  index = s.indexOf( "a" );

int  lastIndex = s.lastIndexOf( "abc" );

System.out.println( index );

//查找指定字符串第一次出现的子串

//查看长度

int length = sb.length();

int capacity = sb.capacity();

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容