導航:首頁 > 編程語言 > javastringbuffer遍歷

javastringbuffer遍歷

發布時間:2023-06-14 03:42:30

java 中的StringBuffer是什麼東西,是拿來干什麼的。

你可以看 它與String的區別 主要用於拼接字元串 是一個可變長的字元竄

1、StringBuffer對象的初始化
StringBuffer對象的初始化不像String類的初始化一樣,Java提供的有特殊的語法,而通常情況下一般使用構造方法進行初始化。
例如:
StringBuffer s = new StringBuffer();
這樣初始化出的StringBuffer對象是一個空的對象。
如果需要創建帶有內容的StringBuffer對象,則可以使用:
StringBuffer s = new StringBuffer(「abc」);
這樣初始化出的StringBuffer對象的內容就是字元串」abc」。
需要注意的是,StringBuffer和String屬於不同的類型,也不能直接進行強制類型轉換,下面的代碼都是錯誤的:
StringBuffer s = 「abc」; //賦值類型不匹配
StringBuffer s = (StringBuffer)」abc」; //不存在繼承關系,無法進行強轉
StringBuffer對象和String對象之間的互轉的代碼如下:
String s = 「abc」;
StringBuffer sb1 = new StringBuffer(「123」);
StringBuffer sb2 = new StringBuffer(s); //String轉換為StringBuffer
String s1 = sb1.toString(); //StringBuffer轉換為String
2、StringBuffer的常用方法
StringBuffer類中的方法主要偏重於對於字元串的變化,例如追加、插入和刪除等,這個也是StringBuffer和String類的主要區別。
a、append方法
public StringBuffer append(boolean b)
該方法的作用是追加內容到當前StringBuffer對象的末尾,類似於字元串的連接。調用該方法以後,StringBuffer對象的內容也發生改變,例如:
StringBuffer sb = new StringBuffer(「abc」);
sb.append(true);
則對象sb的值將變成」abctrue」。
使用該方法進行字元串的連接,將比String更加節約內容,例如應用於資料庫SQL語句的連接,例如:
StringBuffer sb = new StringBuffer();
String user = 「test」;
String pwd = 「123」;
sb.append(「select * from userInfo where username=「)
.append(user)
.append(「 and pwd=」)
.append(pwd);
這樣對象sb的值就是字元串「select * from userInfo where username=test and pwd=123」。
b、deleteCharAt方法
public StringBuffer deleteCharAt(int index)
該方法的作用是刪除指定位置的字元,然後將剩餘的內容形成新的字元串。例如:
StringBuffer sb = new StringBuffer(「Test」);
sb. deleteCharAt(1);
該代碼的作用刪除字元串對象sb中索引值為1的字元,也就是刪除第二個字元,剩餘的內容組成一個新的字元串。所以對象sb的值變為」Tst」。
還存在一個功能類似的delete方法:
public StringBuffer delete(int start,int end)
該方法的作用是刪除指定區間以內的所有字元,包含start,不包含end索引值的區間。例如:
StringBuffer sb = new StringBuffer(「TestString」);
sb. delete (1,4);
該代碼的作用是刪除索引值1(包括)到索引值4(不包括)之間的所有字元,剩餘的字元形成新的字元串。則對象sb的值是」TString」。
c、insert方法
public StringBuffer insert(int offset, boolean b)
該方法的作用是在StringBuffer對象中插入內容,然後形成新的字元串。例如:
StringBuffer sb = new StringBuffer(「TestString」);
sb.insert(4,false);
該示例代碼的作用是在對象sb的索引值4的位置插入false值,形成新的字元串,則執行以後對象sb的值是」TestfalseString」。
d、reverse方法
public StringBuffer reverse()
該方法的作用是將StringBuffer對象中的內容反轉,然後形成新的字元串。例如:
StringBuffer sb = new StringBuffer(「abc」);
sb.reverse();
經過反轉以後,對象sb中的內容將變為」cba」。
e、setCharAt方法
public void setCharAt(int index, char ch)
該方法的作用是修改對象中索引值為index位置的字元為新的字元ch。例如:
StringBuffer sb = new StringBuffer(「abc」);
sb.setCharAt(1,』D』);
則對象sb的值將變成」aDc」。
f、trimToSize方法
public void trimToSize()
該方法的作用是將StringBuffer對象的中存儲空間縮小到和字元串長度一樣的長度,減少空間的浪費。

② Java中StringBuffer類append方法的使用

Java中append方法的作用是在一個StringBuffer對象後面追加字元串。

例如StringBuffer s = new StringBuffer("Hello");s.append("World");

則s的內容是內HelloWorld。

「拓展資料」:容

當對字元串進行修改的時候,需要使用 StringBuffer 和 StringBuilder 類。

和 String 類不同的是,StringBuffer 和 StringBuilder 類的對象能夠被多次的修改,並且不產生新的未使用對象。

StringBuilder 類在 Java 5 中被提出,它和 StringBuffer 之間的最大不同在於 StringBuilder 的方法不是線程安全的(不能同步訪問)。

由於 StringBuilder 相較於 StringBuffer 有速度優勢,所以多數情況下建議使用 StringBuilder 類。然而在應用程序要求線程安全的情況下,則必須使用 StringBuffer 類。

③ java遍歷文件並生成目錄怎麼實現

枚舉一個文件夾中的所有文件
/*
import java.io.*;
import java.util.*;
*/
LinkedList<String> folderList = new LinkedList<String>();
folderList.add(%%1);
while (folderList.size() > 0) {
File file = new File(folderList.poll());
File[] files = file.listFiles();
List<File> fileList = new ArrayList<File>();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
folderList.add(files[i].getPath());
} else {
fileList.add(files[i]);
}
}
for (File f : fileList) {
%%2=f.getAbsoluteFile();
%%3
}
}

④ java stringbuilder和stringbuffer的區別

是否多線程安全
String中的對象是不可變的,也就可以理解為常量,顯然線程安全。
AbstractStringBuilder是StringBuilder與StringBuffer的公共父類,定義了一些字元串的基本操作,如expandCapacity、append、insert、indexOf等公共方法。
StringBuffer對方法加了同步鎖或者對調用的方法加了同步鎖,所以是線程安全的。看如下源碼:
(){
2super.reverse();
3returnthis;
4}
5
6publicintindexOf(Stringstr){
7returnindexOf(str,0);//存在publicsynchronizedintindexOf(Stringstr,intfromIndex)方法
8}
StringBuilder並沒有對方法進行加同步鎖,所以是非線程安全的。
StringBuilder與StringBuffer共同點
StringBuilder與StringBuffer有公共父類AbstractStringBuilder(抽象類)。
抽象類與介面的其中一個區別是:抽象類中可以定義一些子類的公共方法,子類只需要增加新的功能,不需要重復寫已經存在的方法;而介面中只是對方法的申明和常量的定義。
StringBuilder、StringBuffer的方法都會調用AbstractStringBuilder中的公共方法,如super.append(...)。只是StringBuffer會在方法上加synchronized關鍵字,進行同步。
最後,如果程序不是多線程的,那麼使用StringBuilder效率高於StringBuffer。

⑤ java中String與StringBuffer的具體該怎麼用

String可以這樣用
String s = "I";
String o=s+"love"+"you";
StringBuffer可以這樣用;
比如你在查詢語句動態的給參數版查詢時可以用他拼湊權HQL語句
StringBuffer sb = new StringBuffer("FROM USER AS A WHERE 1=1");
sb.append(" AND A.userName='");
sb.append(userName);
sb.append("'");
sb.append(" AND A.age='");
sb.append(age);
sb.append("'");

⑥ java中StringBuffer類的常用方法有有哪些

StingBuffer類常用的一些方法有:
append( ),表示將括弧里的某種數據類型的變數插入某一序列中
charAt( ),返回此序列中指定索引處的 char 值
toString( ),返回此序列中數據的字元串表示形式。
subString( ), 返回一個新的 String,它包含此序列當前所包含的字元子序列。
delete( ),移除此序列的子字元串中的字元。
deletecharAt (), 移除此序列指定位置的 char。
insert( ),表示將括弧里的某種數據類型的變數插入某一序列中
reverse( ),將此字元序列用其反轉形式取代
setCharAt(int index, char ch ),將給定索引處的字元設置為 ch。
trimToSize (),嘗試減少用於字元序列的存儲空間。
StringBufferappend(boolean b)
將 boolean 參數的字元串表示形式追加到序列。 StringBufferappend(char c)
將 char 參數的字元串表示形式追加到此序列。 StringBufferappend(char[] str)
將 char 數組參數的字元串表示形式追加到此序列。 StringBufferappend(char[] str, int offset, int len)
將 char 數組參數的子數組的字元串表示形式追加到此序列。 StringBufferappend(CharSequence s)
將指定的 CharSequence 追加到該序列。 StringBufferappend(CharSequence s, int start, int end)
將指定 CharSequence 的子序列追加到此序列。 StringBufferappend(double d)
將 double 參數的字元串表示形式追加到此序列。 StringBufferappend(float f)
將 float 參數的字元串表示形式追加到此序列。 StringBufferappend(int i)
將 int 參數的字元串表示形式追加到此序列。 StringBufferappend(long lng)
將 long 參數的字元串表示形式追加到此序列。 StringBufferappend(Object obj)
追加 Object 參數的字元串表示形式。 StringBufferappend(String str)
將指定的字元串追加到此字元序列。 StringBufferappend(StringBuffer sb)
將指定的 StringBuffer 追加到此序列中。 StringBufferappendCodePoint(int codePoint)
將 codePoint 參數的字元串表示形式追加到此序列。 intcapacity()
返回當前容量。 charcharAt(int index)
返回此序列中指定索引處的 char 值。 intcodePointAt(int index)
返回指定索引處的字元(統一代碼點)。 intcodePointBefore(int index)
返回指定索引前的字元(統一代碼點)。 intcodePointCount(int beginIndex, int endIndex)
返回此序列指定文本范圍內的統一代碼點。 StringBufferdelete(int start, int end)
移除此序列的子字元串中的字元。 StringBufferdeleteCharAt(int index)
移除此序列指定位置的 char。 voidensureCapacity(int minimumCapacity)
確保容量至少等於指定的最小值。 voidgetChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
將字元從此序列復制到目標字元數組 dst。 intindexOf(String str)
返回第一次出現的指定子字元串在該字元串中的索引。 intindexOf(String str, int fromIndex)
從指定的索引處開始,返回第一次出現的指定子字元串在該字元串中的索引。 StringBufferinsert(int offset, boolean b)
將 boolean 參數的字元串表示形式插入此序列中。 StringBufferinsert(int offset, char c)
將 char 參數的字元串表示形式插入此序列中。 StringBufferinsert(int offset, char[] str)
將 char 數組參數的字元串表示形式插入此序列中。 StringBufferinsert(int index, char[] str, int offset, int len)
將數組參數 str 的子數組的字元串表示形式插入此序列中。 StringBufferinsert(int dstOffset, CharSequence s)
將指定 CharSequence 插入此序列中。 StringBufferinsert(int dstOffset, CharSequence s, int start, int end)
將指定 CharSequence 的子序列插入此序列中。 StringBufferinsert(int offset, double d)
將 double 參數的字元串表示形式插入此序列中。 StringBufferinsert(int offset, float f)
將 float 參數的字元串表示形式插入此序列中。 StringBufferinsert(int offset, int i)
將 int 參數的字元串表示形式插入此序列中。 StringBufferinsert(int offset, long l)
將 long 參數的字元串表示形式插入此序列中。 StringBufferinsert(int offset, Object obj)
將 Object 參數的字元串表示形式插入此字元序列中。 StringBufferinsert(int offset, String str)
將字元串插入此字元序列中。 intlastIndexOf(String str)
返回最右邊出現的指定子字元串在此字元串中的索引。 intlastIndexOf(String str, int fromIndex)
返回最後一次出現的指定子字元串在此字元串中的索引。 intlength()
返回長度(字元數)。 intoffsetByCodePoints(int index, int codePointOffset)
返回此序列中的一個索引,該索引是從給定 index 偏移 codePointOffset 個代碼點後得到的。 StringBufferreplace(int start, int end, String str)
使用給定 String 中的字元替換此序列的子字元串中的字元。 StringBufferreverse()
將此字元序列用其反轉形式取代。 voidsetCharAt(int index, char ch)
將給定索引處的字元設置為 ch。 voidsetLength(int newLength)
設置字元序列的長度。 CharSequencesubSequence(int start, int end)
返回一個新的字元序列,該字元序列是此序列的子序列。 Stringsubstring(int start)
返回一個新的 String,它包含此字元序列當前所包含的字元子序列。 Stringsubstring(int start, int end)
返回一個新的 String,它包含此序列當前所包含的字元子序列。 StringtoString()
返回此序列中數據的字元串表示形式。 voidtrimToSize()
嘗試減少用於字元序列的存儲空間。

閱讀全文

與javastringbuffer遍歷相關的資料

熱點內容
如何把桌面文件放到excel裡面 瀏覽:363
照片文件名是怎麼查的 瀏覽:876
c怎麼在cmd模式下顯示文件 瀏覽:325
手機怎麼把文件夾的圖片移到相冊 瀏覽:440
hjc是啥文件的格式 瀏覽:298
報廢鐵皮文件櫃圖片 瀏覽:801
win10系統更新文件能 瀏覽:558
怎麼讓蘋果手機下載其他APP 瀏覽:471
多個cs文件編譯成一個dll 瀏覽:606
sql管理工具70 瀏覽:130
js裡面的圖片對齊 瀏覽:965
三星2016視頻文件夾 瀏覽:317
舊手機創新手機數據怎麼傳 瀏覽:954
怎麼刪除領克app里的記錄 瀏覽:254
捷波朗弦月3最新版本 瀏覽:123
win10保存不了文件 瀏覽:735
jsonobject解析list 瀏覽:558
網站未知回應怎麼回事 瀏覽:103
refdoc資料庫 瀏覽:602
傳奇世界文件在哪裡下載 瀏覽:306

友情鏈接