StringBuffer总结

1.添加功能

  public StringBuffer append(String str)

  public StringBuffer insert(int offset,String str):在指定位置把任意类型插入字符串缓冲区

2.删除功能

  public StringBuffer delete(int index):删除指定位置的字符

  public StringBuffer delete(int start,int end):删除从指定位置开始指定位置结束的内容,并返回本身 

3.替换功能

  public StringBuffer replace(int start,int end,String str)

4.反转功能

  public StringBuffer reverse()

5.截取功能

  public String substring(int start)

  public String substring(int start,int end)     返回的是字符串,而不是StringBuffer本身了。StirngBuffer本身没有变化

6.String和StringBuffer相互转换

  String->StringBuffer:

    1.构造方法:StringBuffer sb=new StringBuffer(s);

    2.append: sb.append(s);

  StringBuffer->String

    1.构造方法:String s1=new String(sb);

    2.toString:String s1=sb.toString();

 1 package hello;
 2
 3 import java.io.BufferedOutputStream;
 4 import java.io.File;
 5 import java.io.FileInputStream;
 6 import java.io.FileNotFoundException;
 7 import java.io.FileOutputStream;
 8 import java.io.IOException;
 9 import java.io.InputStreamReader;
10 import java.io.OutputStreamWriter;
11 import java.text.SimpleDateFormat;
12 import java.util.Date;
13 import java.util.HashSet;
14 import java.util.Random;
15 import java.util.TreeSet;
16
17 public class Test02{
18     public static void main(String[] args) throws Exception {
19         //把数组拼接成一个字符串
20         int[] arr={34,23,12,55,13};
21
22         //方式1:用String做拼接的方式
23         String s=arrayToString(arr);
24         System.out.println(s);
25         //方式2:用StringBuffer
26         String s2=arrayToString2(arr);
27         System.out.println(s2);
28     }
29
30     public static String arrayToString2(int[] arr){
31         StringBuffer sb=new StringBuffer();
32         sb.append("[");
33         for(int i=0;i<arr.length;i++){
34             if(i==arr.length-1){
35                 sb.append(arr[i]);
36             }else{
37                 sb.append(arr[i]).append(", ");
38
39             }
40         }
41         sb.append("]");
42         return sb.toString();
43     }
44     public static String arrayToString(int[] arr){
45         String s="";
46         s+="[";
47         for(int i=0;i<arr.length;i++){
48             if(i==arr.length-1){
49                 s+=arr[i];
50             }else{
51                 s+=arr[i];
52                 s+=", ";
53             }
54         }
55         s+="]";
56         return s;
57     }
58 }

7 String,StringBuffer,StringBuilder的区别

  StringBuilder:线程不安全,效率高

时间: 2024-12-15 01:59:31

StringBuffer总结的相关文章

6-探秘Java中的String、StringBuilder以及StringBuffer

相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问到的地方,今天就来和大家一起学习一下String.StringBuilder和StringBuffer这几个类,分析它们的异同点以及了解各个类适用的场景.下面是本文的目录大纲: 一.你了解String类吗? 二.深入理解String.StringBuffer.StringBuilder 三.不同场景下三个类的性能测试 四.常见的关于String.StringBuffer的面试题(辟谣网上流传的一些曲解String类

String stringbuffer StringBuilder

最近指导几位新人,学习了一下String,StringBuffer和StringBuilder类,从反馈的结果来看,总体感觉学习的深度不够,没有读出东西.其实,JDK的源码是越读越有味的.下面总结一下我读这些源码的收获吧.注意:虽然源码的版本是JDK6,但是个人觉得学习这个版本的源码对于理解数据结构非常有帮助,因为String就是一个数据结构,它是char []的封装,实现了很多对char []的操作 第一部分:String源码解析 (1)String实现了CharSequence接口,这个接口

StringBuilder、StringBuffer、String比较

1. String 类 String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间. String a = "a"; //假设a指向地址0x0001 a = "b";//重新赋值后a指向地址0x0002,但0x0001地址中保存的"a"依旧存在,但已经不再是a所指向的,a 已经指向了其它地址. 因此String的操作都是改变赋值地址而不是改变值操作. 2. StringBuf

从为什么String=String谈到StringBuilder和StringBuffer

前言 有这么一段代码 1 public class TestMain 2 { 3 public static void main(String[] args) 4 { 5 String str0 = "123"; 6 String str1 = "123"; 7 System.out.println(str0 == str1); 8 } 9 } 运行结果是什么?答案当然是true.对,答案的确是true,但是这是为什么呢?很多人第一反应肯定是两个“123”的Stri

Java字符串的String、StringBuilder、StringBuffer三者特性详解

一.不可变String类型 字符串是计算机程序设计中的,最常见行为,Java的字符串操作最主要的类是String,并且String对象是不可变的(Immutable),即对象一旦创建在内存中,那么它的内容就不再改变.虽然String类中提供很多方法看起来像是可以修改String对象,比如trim().subString()等等,但是实际上它们并没有改变原来的字符串对象,这些方法传递的只是引用的一个拷贝,所以重新创建了一个String类型的对象,并且有了新的引用. 例如下面一段代码可以说明Stri

java.lang(StringBuffer)

public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharSequence { /** * Constructs a string buffer with no characters in it and an * initial capacity of 16 characters. */ public StringBuffer() { super(16);

Java (六、String类和StringBuffer)

Java String 类 字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 创建字符串 // ==比较的是字符串在栈中存放的首地址,而equals()比较的是两个字符串的内容是否相同 //普通的声明字符串的方法,只会在字符串常量池里开辟空间,并且开辟空间之前,会检查字符串常量池里是否已存在 //相同的数据,如果有,直接指向已存在的数据,如果没有会在字符串常量池里开辟一个新的空间 String s = "ccy"

从String类型字符串的比较到StringBuffer和StringBuilder

1. String类型 String类源码 为了从本质上理解String类型的特性所在,我们从String类型的源码看起,在源码中String类的注释中存在以下: /**Strings are constant; their values cannot be changed after they * are created. String buffers support mutable strings. * Because String objects are immutable they ca

String、StringBuffer与StringBuilder之间区别

最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下. 关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String 2.String <(StringBuffer,StringBuilder)的原因 String:字符串常

JAVA API(一)String类和StringBuffer类

1.String类和StringBuffer类 在程序中经常会用到字符串,所谓的字符串就是指一连串的字符,它是由多个单个字符连接而成的.字符串中可以包含任意字符,这些字符必须包含在一对双引号""之内,如"abc".在Java中定义了String和StringBuffer类来封装字符串,并提供了一系列操作字符串的方法,它们都位于java.lang包中,因此不需要导包就可以直接使用.下面将对String类和StringBuffer类详细讲解. 1.1String类的初始