首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

JAVA StringBuffer类与StringTokenizer类

JAVA StringBuffer类与StringTokenizer类

StringBuffer类提供了一个字符串的可变序列,类似于String类,但它对存储的字符序列可以任意修改,使用起来比String类灵活得多。它常用的构造函数为:
  StringBuffer()
  构造一个空StringBuffer对象,初始容量为16个字符。
  StringBuffer(String str)
  构造一个StringBuffer对象,初始内容为字符串str的拷贝。
        对于StringBuffer类,除了String类中常用的像长度、字符串截取、字符串检索的方法可以使用之外,还有两个较为方便的方法系列,即append方法系列和insert方法系列。

        (1) append方法系列根据参数的数据类型在StringBuffer对象的末尾直接进行数据添加。
public StringBuffer append(boolean b)
public StringBuffer append(char c)
public StringBuffer append(char[] str)
public StringBuffer append(char[] str, int offset, int len)
public StringBuffer append(double d)
public StringBuffer append(float f)
public StringBuffer append(int i)
public StringBuffer append(long l)
public StringBuffer append(Object obj)
public StringBuffer append(String str)
public StringBuffer append(StringBuffer sb)

        (2)  insert方法系列根据参数的数据类型在StringBuffer的offset位置进行数据插入。
public StringBuffer insert(int offset, boolean b)
public StringBuffer insert(int offset, char c)
public StringBuffer insert(int offset, char[] str)
public StringBuffer insert(int index, char[] str, int offset, int len)
public StringBuffer insert(int offset, double d)
public StringBuffer insert(int offset, float f)
public StringBuffer insert(int offset, int i)
public StringBuffer insert(int offset, long l)
public StringBuffer insert(int offset, Object obj)
public StringBuffer insert(int offset, String str)

(3) 下面这个方法用于将stringbuffer对象的数据转换成字符串:
public String toString()

      【例3.12】基于例3.11进行修改,使用StringBuffer对象得到如图3.10所示的输出界面。
  • //程序文件名为TestString.java
  • public
    class TestString  
  • {  
  •     public
    static
    void main(String[] args)  
  •     {  
  •     StringBuffer str = new StringBuffer("The substring begins at the specified beginIndex.");  
  •     StringBuffer str1 = new StringBuffer("string");  
  •     String str2 = new String();  
  •     int size = str.length();  
  •     int flag = str.indexOf("substring");  
  •     str2 = str.substring(flag,flag + 9);  
  •     StringBuffer strOut = new StringBuffer("字符串");  
  •     strOut.append(str);  
  •     strOut.append("总长度为:");      
  •     strOut.append(size);  
  •     int f = strOut.indexOf("总");  
  •     strOut.insert(f,'\n');  
  •     System.out.println(strOut.toString());   
  •     if(str1.toString().equals(str2))  
  •           System.out.println("截取的字符串为:" + str1.toString());  
  •     else
  •           System.out.println("截取的字符串为:" + str2);  
  •        }  
  • }  

StringTokenizer(String str, String delim)
使用delim分隔符,以初始字符串str构建StringTokenizer对象。
int countTokens()
返回识别的总记号数。
boolean hasMoreTokens()
测试是否还有识别的记号。
boolean nextToken(String delim)
返回字符串delim分隔的下一个记号。
String nextToken()
返回下一个识别的记号。


【例3.13】使用StringTokenizer类分割字符串,字符串的分割情况如图3.11所示。源程序代码如下:

  • import java.util.*;  

  • public
    class UseToken   
  • {  
  •     public
    static
    void main(String[] args)   
  •     {  
  •         String str = "数学::英语::语文::化学";  
  •         StringTokenizer st = new StringTokenizer(str,"::");  
  •         System.out.println(str + "\n课程数为:" +st.countTokens());  
  •     while (st.hasMoreTokens())   
  •     {  
  •     System.out.println(st.nextToken("::"));  
  •     }  
  •     str = "Hello this is a test";  
  •     st = new StringTokenizer(str);  
  •     System.out.println(str + "\n单词数为:" +st.countTokens());  
  •     while (st.hasMoreTokens())   
  •     {  
  •         System.out.println(st.nextToken());  
  •             }  
  •       }  
  • }  
返回列表