qishi821的个人博客分享 http://blog.sciencenet.cn/u/qishi821

博文

Java(二)

已有 1747 次阅读 2016-9-26 17:08 |个人分类:Java|系统分类:科研笔记| Java相关知识

StringBuffer

 StringBufferJava中用来实现字符串的另一个类,是一个字符缓冲区,是可变字符序列。通过某些方法调用可以改变字符序列的长度和内容。可将StringBuffer安全地用于多个线程。

 StringBuffer上的主要操作是append(添加)insert(插入),这些方法可以重载,以接受任意类型的字符。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符串缓冲区中。append方法始终将这些字符串加到缓冲区的末端;而insert方法则在指定的点添加字符。

 每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超过此容量,就无须分配新的内部缓冲数组。如果内部缓冲区溢出,则次容量自动增大。

 1创建StringBuffer类的对象--字符串变量

  构造函数

  (1)public StringBuffer()

  此构造函数构造一个其中不带字符的字符串缓冲区,初始容量为16个字符。

  (2)public StringBuffer(int capacity)

此构造函数构造一个其中不带字符,但具有指定初始容量的字符串缓冲区。参数capacity是初始容量。如果capacity小于0,就会抛出异常NegativeArraySizeException.

  (3)public StringBuffer(String str)

此构造函数构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。该字符串的初始容量为16加上字符串参数的长度。参数str为缓冲区的初始内容。

如果strnull,就会抛出异常NullPointerException.

下面,用三个构造函数分别初始化一个字符串:

StringBuffer StrBuffer1  =  new StringBuffer();

StringBuffer StrBuffer2  =  new StringBuffer(20);

StringBuffer StrBuffer3  =  new StringBuffer(Hello World!);

2 字符串变量扩充、修改

 StringBuffer类有三组用来扩充和修改其包含的字符的方法,分别是:

 (1)public StringBuffer append(参数类型 参数);

  append 方法将指定的参数转换成字符串,附加在原StringBuffer字符串后面。参数可以是各种数据类型的数据,如 int, double, char, String等。

 e.g.StringBuffer StrBuffer1 = new StringBuffer();

    StrBuffer1.append(Hello World!);

    System.out.println(StrBuffer1);

     程序运行结果是:

     Hello World!

 (2)public StringBuffer insert(整数型 索引,参数类型 参数);

此方法在指定的位置掺入由参数转化的字符串,参数Index就是要插入字符串的位置,参数就是要插入的对象,参数类型可以是任何数据类型。

e.g.

StringBuffer StrBuffer1 = new StringBuffer();

  StrBuffer1.append(Hello World!);

StrBuffer1.insert(6, Beautiful);

   System.out.println(StrBuffer1);

程序运行结果如下:

 Hello Beautiful World!

 (3)public void setCharAt(int index, char ch);

  此方法可将指定索引的字符用给定的另一个字符来替换,例如:把字符串coat转换成字符串goat:

StringBuffer StrBuffer1 = new StringBuffer(coat);

StrBuffer1.setCharAt(0, g);

3 StringBuffer对象的其他操作

 (1)public int capacity();

    此方法返回字符串缓冲区的容量。

 (2)public StringBuffer delete(int start, int end);

    此方法删除从start索引处开始直到end索引前的字符的字符串。

 (3)public StringBuffer deleteCharAt(int index);

    此方法删除字符串中指定位置的字符

 (4)public StringBuffer reverse()

  此方法将字符串倒序排列。

 (5)

  public int indexOf(String str);

   public int indexOf(String str, int fromIndex);

  这两个方法返回字符串在字符串中第一次出现的第一个字符的索引。

   e.g.

    StringBuffer StrBuffer1 = new StringBuffer();

    StrBuffer1.append(Hello World!);

    System.out.println(StrBuffer1.capacity());//返回字符串缓冲区的容量

    System.out.println(StrBuffer1.reverse());//把字符串倒序

    System.out.println(StrBuffer1.delete(0,7));//删除从0开始直到6的字符串

    System.out.println(StrBuffer1.deleteCharAt(0));//删除指定的字符

    程序运行结果如下:

    16

    !dlrow olleH

    olleH  

    lleH

StringBuilder

  StringBuilder 类的对象是一个可变的字符序列。该类被设计用作StringBuffer的一个简易替换,用在字符缓冲区被单个线程使用的时候。如果可能,建议优先采用该类,因为在大多数实现中,它比StringBuffer要快。

 StringBuilder上的主要操作是appenginsert方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符串生成器中。append方法始终将这些字符添加到生成器的末端;而insert方法则在指定的点添加字符。

 StringBuilder的主要操作方法和StringBudffer的方法相同。




https://blog.sciencenet.cn/blog-2355761-1005194.html

上一篇:Java(一)
下一篇:数据库基础(一)
收藏 IP: 182.150.36.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-3-29 13:18

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部