`
tonysmith
  • 浏览: 174152 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

StringBuffer使用指南

F# 
阅读更多
StringBuffer:StringBuffer类型

描述:在实际应用中,经常回遇到对字符串进行动态修改。这时候,String类的功能受到限制,而StringBuffer类可以完成字符串的动态添加、插入和替换等操作。

1、构造函数。
    StringBuffer() :构造一个没有任何字符的StringBuffer类。
    StringBuffer(int length) : :构造一个没有任何字符的StringBuffer类,并且,其长度为length。
    StringBuffer(String str) :以str为初始值构造一个StringBuffer类。


2、方法。
说明:
1. 所有方法均为public;
2. 书写格式:[修饰符] <返回类型> <方法名([参数列表])>

如:
static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。


    1. StringBuffer append(boolean b)
    2. StringBuffer append(char c)
    3. StringBuffer append(char[] str)
    4. StringBuffer append(char[] str, int offset, int len)
    5. StringBuffer append(double d)
    6. StringBuffer append(float f)
    7. StringBuffer append(int i)
    8. StringBuffer append(long l)
    9. StringBuffer append(Object obj)
    10. StringBuffer append(String str)
    11. StringBuffer append(StringBuffer sb)


    以上的方法都是向字符串缓冲区“追加”元素,但是,这个“元素”参数可以是布尔量、字符、字符数组、双精度数、浮点数、整型数、长整型数对象类型的字符串、字符串和StringBuffer类等。如果添加的字符超出了字符串缓冲区的长度,Java将自动进行扩充。

		String question = new String("1+1=");
		int answer = 3;
		boolean result = (1+1==3);

		StringBuffer sb = new StringBuffer();
		sb.append(question);
		sb.append(answer);
		sb.append('\t');
		sb.append(result);

		System.out.println(sb);
结果为:
1+1=3   false

    12. int capacity() :返回当前StringBuffer对象(字符串缓冲区)的总空间,而非字符号串的长度。
    13. char charAt(int index) :在当前StringBuffer对象中取索引号为index的字符。第一个字符的索引为“0”
    14. StringBuffer delete(int start, int end) :删除当前StringBuffer对象中以索引号start开始,到end结束的子串。
    15. StringBuffer deleteCharAt(int index) :删除当前StringBuffer对象中索引号为index的字符。
    16. void ensureCapacity(int minimumCapacity) :重新设置字符号串缓冲区的总空间。如果minimumCapacity大于当前的总空间,则新的空间被设置:一种结果是minimumCapacity;另一种结果是{“老空间”乘2加2}。

		StringBuffer sb1 = new StringBuffer(5);
		StringBuffer sb2 = new StringBuffer(5);

		sb1.ensureCapacity(6);
		sb2.ensureCapacity(100);

		System.out.println( "sb1.Capacity: " + sb1.capacity() );
		System.out.println( "sb2.Capacity: " + sb2.capacity() );
结果为:
sb1.Capacity: 12
sb2.Capacity: 100

    17. void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) :从当前StringBuffer对象的索引号srcBegin开始,到srcEnd结束的子串,赋值到字符数组dst中,并且从dst的索引号dstBegin开始。

		StringBuffer sb = new StringBuffer("I love her!");
		char[] i = {'I',' ','l','o','v','e',' ','y','o','u'};

		sb.getChars(7,10,i,7);

		System.out.println( "sb: " + sb );
结果为:sb: I love her!

    18. int indexOf(String str) :返回当前StringBuffer对象中,第一个满足str子串的位置。
    19. int indexOf(String str, int fromIndex) :从当前StringBuffer对象的fromIndex开始查找,返回第一个满足str子串的位置。
    20. StringBuffer insert(int offset, boolean b)
    21. StringBuffer insert(int offset, char c)
    22. StringBuffer insert(int offset, char[] str)
    23. StringBuffer insert(int index, char[] str, int offset, int len)
    24. StringBuffer insert(int offset, double d)
    25. StringBuffer insert(int offset, float f)
    26. StringBuffer insert(int offset, int i)
    27. StringBuffer insert(int offset, long l)
    28. StringBuffer insert(int offset, Object obj)
    29. StringBuffer insert(int offset, String str)


    以上的方法都是在当前StringBuffer对象中插入一个元素,在索引号offset处插入相应的值。
    30. int lastIndexOf(String str) :返回当前StringBuffer对象中,最后一个满足str子串的位置。
    31. int lastIndexOf(String str, int fromIndex) :从当前StringBuffer对象的fromIndex开始查找,返回最后一个满足str子串的位置。
    32. int length() :返回当前StringBuffer对象(字符缓冲区)中,字符串的长度。注意:此方法与capacity() 不同。
    33. StringBuffer replace(int start, int end, String str) :替换当前StringBuffer对象的字符串。从start开始,到end结束的位置替换成str。
    34. StringBuffer reverse() :将字符串翻转。

		StringBuffer sb = new StringBuffer("0123456789");
		System.out.println( "sb.reverse(): " + sb.reverse() );
结果为:sb.reverse(): 9876543210

    35. void setCharAt(int index, char ch) :设置索引号index的字符为ch。
    36. void setLength(int newLength) :重新设置字符串缓冲区中字符串的长度,如果newLength小于当前的字符串长度,将截去多余的字符。

		StringBuffer sb = new StringBuffer("0123456789");
		sb.setLength(5);
		System.out.println( "sb: " + sb );
结果为:sb: 01234

    37. String substring(int start) :取当前StringBuffer对象中,从start开始到结尾的子串。
    38. String substring(int start, int end) :取当前StringBuffer对象中,从start开始到end的子串。
    39. String toString() :将当前StringBuffer对象转换成String对象。
分享到:
评论

相关推荐

    StringBuffer

    本文旨在深入探讨`StringBuffer`的特性和使用方法,为初学者提供一个全面的指南。 #### `StringBuffer`的基本概念 `StringBuffer`是`java.lang`包下的一个类,它是`String`类的一个补充,设计用于处理那些需要动态...

    java offer收割指南

    Java Offer 收割指南 本资源为 Java 面试题集,涵盖 Java 基础知识、数据结构、算法、数据库、JVM 和 Redis 等方面的知识点。 Java 基础知识 1. JAVA 中的几种基本数据类型是什么,各自占用多少字节? Java 中有...

    Java2学习指南.rar

    5. **字符串处理**:讲解String类的特点、不可变性,以及如何使用StringBuffer和StringBuilder进行高效字符串操作。 6. **输入/输出流**:讨论I/O流的概念,包括文件操作、字节流和字符流、对象序列化,以及如何...

    2015Java面试指南

    在多线程环境下使用`StringBuffer`更安全。 - **Vector, ArrayList, LinkedList的区别**: - `Vector`和`ArrayList`都是基于数组实现的集合类,其中`Vector`是线程安全的,而`ArrayList`不是。 - `LinkedList`则...

    java 考试复习指南

    【Java 考试复习指南】 1. Java 编译过程:Java 源程序文件(扩展名为 .java)经过Java编译器编译后,会生成字节码文件(扩展名为 .class)。这是Java程序运行的基础,因为JVM(Java虚拟机)执行的是字节码。 2. ...

    《SCJP学习指南》chap6

    - **StringBuilder vs StringBuffer**:区分这两个类的使用场景,知道何时选择 `StringBuilder`(单线程),何时选择 `StringBuffer`(多线程)。 - **I/O流的层次结构**:熟悉 `InputStream` 和 `OutputStream` 的...

    scjp认证考试指南

    - **StringBuilder与StringBuffer**:理解在多线程环境下如何使用这两个类进行字符串拼接。 6. **方法** - **方法的定义与调用**:学习如何声明、重载和递归方法。 - **参数传递**:掌握按值传递和按引用传递的...

    Java概论(面试指南)

    例如,了解Object类提供的基本方法、String和StringBuffer的区别、集合框架中不同类的使用场景和特性、以及HashMap和ConcurrentHashMap的区别。另外,对Java中的同步机制、锁的使用以及对于“==”和“equals”方法的...

    scjp 学习指南310-055

    5. **字符串处理**:Java中的String类是常用的数据类型,掌握字符串的创建、操作和比较,以及StringBuilder和StringBuffer的使用,是提高程序性能的重要一环。 6. **输入/输出(I/O)和文件处理**:理解和运用Java...

    初学者指南 JAVA常用类的使用方法.doc

    【初学者指南】Java 常用类的使用方法 在Java编程中,掌握常用的类是提高编程效率和代码质量的关键。以下是一些常见的Java类及其使用方法: 1. **Integer 类** - Integer 类是Java中的包装类,用于封装基本类型...

    Java2_认证考试指南

    6. **字符串处理**:掌握String类的基本操作,如字符串连接、查找、替换、截取等,以及StringBuilder和StringBuffer的使用。 7. **输入/输出流**:理解I/O流的概念,包括文件流、字节流和字符流,以及缓冲流和对象...

    SCJP考试指南(考试号310-065)光盘附带的MasterExam模拟题

    6. **字符串处理**:String类的特性,字符串操作方法,以及StringBuffer或StringBuilder的使用。 7. **输入/输出流**:I/O流的层次结构,如何进行文件读写,以及如何使用缓冲区。 8. **多线程**:线程的创建、同步...

    java源码stringbuffer-java-strings-api-guide:Java字符串处理指南

    StringBuilder和StringBuffer方法/API 的完整指南。 本指南的源代码示例在我们的本地开发环境中进行了良好的测试,您可以将这些示例用作无错误。 您可以在 上了解更多信息。 在本指南中,您将通过示例了解基本概念、...

    Java编码最佳实践指南

    4. **字符串拼接**:在构建字符串时,使用`StringBuffer`或`StringBuilder`而非`+`运算符,可以显著提高性能,尤其是在循环中。 5. **SQL语句优化**:推荐使用预编译的`PreparedStatement`代替`Statement`,并利用...

    面试指南java

    - String与StringBuffer的区别:了解String不可变和StringBuffer可变的特性及其性能差异。 - Vector, ArrayList, LinkedList的区别:熟悉这三种集合框架在内部实现和使用场合上的不同。 - HashTable, HashMap, ...

    SCJP认证指南 第三版

    4. **字符串与集合框架**:字符串在Java中的应用及操作,包括String类和StringBuilder/StringBuffer类。同时,熟悉ArrayList、LinkedList、HashSet、HashMap等集合类的使用和特性。 5. **内存管理与垃圾回收**:...

    Performance:本项目的目的是比较使用 String、StringBuilder 和 StringBuffer 的算法之间的执行情况

    4. 实际应用中的选择指南:单线程环境优先使用StringBuilder,多线程环境选择StringBuffer。 5. JVM设置对性能的影响:栈深度、内存分配策略等。 通过对这些知识点的理解,开发者可以更好地优化他们的代码,特别是...

    SCJP认证考试指南1109.zip

    4. **字符串与字符串处理**: 学习String类的不可变性,以及如何使用StringBuilder和StringBuffer进行字符串拼接。理解正则表达式在Java中的应用,如Pattern和Matcher类。 5. **方法和接口**: 熟悉方法的定义、重载...

    Java面试指南.pdf

    - equals()和hashCode()的作用:equals()方法用于判断两个对象是否相等,hashCode()方法用于获取对象的哈希码,通常在使用哈希表时一同使用。 4. Java对象的创建和序列化 - Java创建对象的方式:可以通过new...

Global site tag (gtag.js) - Google Analytics