日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1.17 StringBuffer类详解

發布時間:2025/3/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.17 StringBuffer类详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在 Java 中,除了通過 String 類創建和處理字符串之外,還可以使用 StringBuffer 類來處理字符串。StringBuffer 類可以比 String 類更高效地處理字符串。

因為 StringBuffer 類是可變字符串類,創建 StringBuffer 類的對象后可以隨意修改字符串的內容。每個 StringBuffer 類的對象都能夠存儲指定容量的字符串,如果字符串的長度超過了 StringBuffer 類對象的容量,則該對象的容量會自動擴大。

創建 StringBuffer 類

StringBuffer 類提供了 3 個構造方法來創建一個字符串,如下所示:

  • StringBuffer() 構造一個空的字符串緩沖區,并且初始化為 16 個字符的容量。
  • StringBuffer(int length) 創建一個空的字符串緩沖區,并且初始化為指定長度 length 的容量。
  • StringBuffer(String str) 創建一個字符串緩沖區,并將其內容初始化為指定的字符串內容
    str,字符串緩沖區的初始容量為 16 加上字符串 str 的長度。

使用 StringBuffer 類的構造函數的示例如下:

// 定義一個空的字符串緩沖區,含有16個字符的容量 StringBuffer str1 = new StringBuffer(); // 定義一個含有10個字符容量的字符串緩沖區 StringBuffer str2 = new StringBuffer(10); // 定義一個含有(16+4)的字符串緩沖區,"青春無悔"為4個字符 StringBuffer str3 = new StringBuffer("青春無悔"); /* *輸出字符串的容量大小 *capacity()方法返回字符串的容量大小 */ System.out.println(str1.capacity()); // 輸出 16 System.out.println(str2.capacity()); // 輸出 10 System.out.println(str3.capacity()); // 輸出 20

上述代碼聲明了 3 個 StringBuffer 對象 str1、str2 和 str3,并分別對其進行初始化。str1.capacity() 用于查看 str1 的容量,接著以同樣的方式對 str2 和 str3 進行容量查看的操作。

追加字符串

StringBuffer 類的 append() 方法用于向原有 StringBuffer 對象中追加字符串。該方法的語法格式如下:

StringBuffer 對象.append(String str)

該方法的作用是追加內容到當前 StringBuffer 對象的末尾,類似于字符串的連接。調用該方法以后,StringBuffer 對象的內容也發生了改變,例如:

StringBuffer buffer = new StringBuffer("hello,"); // 創建一個 StringBuffer 對象 String str = "World!"; buffer.append(str); // 向 StringBuffer 對象追加 str 字符串 System.out.println(buffer.substring(0)); // 輸出:Hello,World!

例 1
每個新學期開始,學校都會針對本學期課程列出必修課程。編寫一個 Java 程序,要求用戶向控制臺循環錄入五門必修課程名稱,并將這五個名稱進行連接,最后輸出連接后的字符串。代碼如下:

import java.util.Scanner; public class Testl9 {public static void main(String[] args) {StringBuffer sys = new StringBuffer("校內課程管理");System.out.println("歡迎進入《"+sys+"》系統");// 聲明課程名稱字符串StringBuffer courseName = new StringBuffer();System.out.println("請錄入本期的五門必修課名稱:");Scanner input = new Scanner(System.in);// 循環接收控制臺輸入的字符串String name = "";for (int i = 0;i < 5;i++) {name = input.next();courseName.append(name+"\t");if(i == 4) {System.out.println("錄入完畢!");}}System.out.println("本學期的必修課程有:\n"+courseName); }

在該程序中,首先聲明一個空的 StringBuffer 對象,然后聲明并初始化 courseName 變量,該變量用于存儲用戶從控制臺輸入的課程名稱,接著使用 for 循環語句來循環接收用戶輸入數據。在循環體中,調用 StringBuffer 對象的 append() 方法對用戶輸入的字符串進行追加,當用戶錄完五門課程的名稱后,程序將輸出“錄入完畢!”的提示信息。最后輸出 String-Buffer 對象字符串。

運行程序,執行結果如下所示:

歡迎進入《校內課程管理》系統 請錄入本期的五門必修課名稱: Java語言基礎 SQL查詢數據庫 模擬電路 Java面向對象編程 體育 錄入完畢! 本學期的必修課程有:Java語言基礎 SQL查詢數據庫 模擬電路 Java面向對象編程 體育

替換字符

StringBuffer 類的 setCharAt() 方法用于在字符串的指定索引位置替換一個字符。該方法的語法格式如下:

StringBuffer 對象.setCharAt(int index, char ch);

該方法的作用是修改對象中索引值為 index 位置的字符為新的字符 ch,例如:

StringBuffer sb = new StringBuffer("hello"); sb.setCharAt(1,'E'); System.out.println(sb); // 輸出:hEllo sb.setCharAt(0,'H'); System.out.println(sb); // 輸出:HEllo sb.setCharAt(2,'p'); System.out.println(sb); // 輸出:HEplo

反轉字符串

StringBuffer 類中的 reverse() 方法用于將字符串序列用其反轉的形式取代。該方法的語法格式如下:

StringBuffer 對象.reverse();

使用 StringBuffer 類中的 reverse() 方法對字符串進行反轉的示例如下:

StringBuffer sb = new StringBuffer("java"); sb.reverse(); System.out.println(sb); // 輸出:avaj

刪除字符串

StringBuffer 類提供了 deleteCharAt() 和 delete() 兩個刪除字符串的方法,下面詳細介紹。

1. deleteCharAt() 方法

deleteCharAt() 方法用于移除序列中指定位置的字符,該方法的語法格式如下:

StringBuffer 對象.deleteCharAt(int index);

deleteCharAt() 方法的作用是刪除指定位置的字符,然后將剩余的內容形成一個新的字符串。例如:

StringBuffer sb = new StringBuffer("She"); sb.deleteCharAt(2); System.out.println(sb); // 輸出:Se

執行該段代碼,將字符串 sb 中索引值為 2 的字符刪除,剩余的內容組成一個新的字符串,因此對象 sb 的值為 Se。

2. delete() 方法

delete() 方法用于移除序列中子字符串的字符,該方法的語法格式如下:

StringBuffer 對象.delete(int start,int end);

其中,start 表示要刪除字符的起始索引值(包括索引值所對應的字符),

end 表示要刪除字符串的結束索引值(不包括索引值所對應的字符)

該方法的作用是刪除指定區域以內的所有字符,例如:

StringBuffer sb = new StringBuffer("hello jack"); sb.delete(2,5); System.out.println(sb); // 輸出:he jack sb.delete(2,5); System.out.println(sb); // 輸出:heck

執行該段代碼,將字符串“hello jack”索引值為 2(包括)到索引值為 5(不包括)之間的所有字符刪除,因此輸出的新的字符串的值為“he jack”。

總結

以上是生活随笔為你收集整理的1.17 StringBuffer类详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。