Java开发 之 StringBuffer和StringBuilder(1)
转 : http://www.jcourse.cn/read/234
2009-03-02 作者:
zhangtaolv
在我们日常开发中,经常会遇到对文本的操作,并且在一般的MIS系统中,文本操作尤为多,如用户名、文章内容、文章标题、合同内容等。在之前的教程中,我也给大家讲解了Java中最基本的字符串操作的类,String。在之前的教程中我也给大家讲了String是不可变的类,即在构造后其内容不能变化,因此对于内容频繁变动(如我们对文章进行编辑)来说String是不合适的。那么遇到这样的情况时,我们该如何处理呢?Java为我们提供了StringBuilder和StringBuffer。
首先讲讲它们的共同点吧!基本上我们在字符串经常发生改变的时候使用它们,然后使用它们来操作会比使用String类要快些。这两个类的区别是StringBuffer是线程安全的而StringBuilder是非线程安全的。
在大致讲解后,我们看看如何由已有的字符串对象来创建StringBuffer和将StringBuffer转换为String对象。
先给出StringBuffer类的构造方法的API,让我们看看有多少种方式来构造它。
构造方法摘要
StringBuffer()
构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
StringBuffer(CharSequence seq)
public java.lang.StringBuilder(CharSequence seq) 构造一个字符串缓冲区,它包含与指定的 CharSequence相同的字符。
StringBuffer(int capacity)
构造一个不带字符,但具有指定初始容量的字符串缓冲区。
StringBuffer(String str)
构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
可以看出,我们可以直接new一个,也可以在new的时候给出参数。这里的参数可以是一个字符串,可以是一个容量值,也可以是一个CharSequence。我们首先看看用已有的字符串来构造StringBuffer。下面是一个例子:
Java代码
public class MainClass {
public static void main(String[] arg) {
StringBuffer aString = new StringBuffer("ABC
相关文档:
<%
response.setContentType("application/vnd.ms-excel;charset=utf-8");
String reportname = (String)request.getAttribute("reportname");
String reportFileName=java.net.URLEncoder.encode(reportname, "UTF-8");
String filenamedispla ......
文件名:Sjis.java
class Sj
{
public static void main(String[] args)
{
}
}
-------------------------------------
执行:
javac Sjis.java
Java Sj
、、、、、、、、、、、、、、、、、
文件名:Sjis.java
public class Sjis.java
{
public static ......
Java学习拾遗2--由String str=”abc”引出的故事(综合了下边的一些指点已更新,感谢在下边留言交流的朋友,谢谢你们的指点!) 收藏 此文于2009-11-10被推荐到CSDN首页
如何被推荐?
话题是由如下的事情引出的:
public class StringTest {
public static void main(String[] args) {
......
org.apache.commons.net.ftp.*中的FTPClient类实现的FTP上传下载功能:
需导入Apache的commos-net的jar包,若导入的是1.4版本的包,则FTPFile[] fileList = ftpClient.listFiles()的执行过程中可能会报错,此时更换导入2.0版本的jar包,问题即可解决。
代码如下:
package com.java.ftp;
import java.io.File;
import ......