[轉載] StringBuffer和StringBuilder類

參考鏈接: Java中的String vs StringBuilder vs StringBuffer

下述文章資料來源于: W3CSCHOOL離線版的Java教程 Java JDK 6.0開發手冊 Java開發從入門到精通(陳小玉版)?

StringBuffer和String選擇的異同 StringBuffer在進行字符串處理時,不生成新的對象,在內存的使用上要優于String類; 二者有一個最顯著的區別在于,對于StringBuffer對象的每次修改都會改變對象自身,這點是和String類最大的區別?

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

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

StringBuilder類在Java 5中被提出,它和StringBuffer之間的最大不同在于StringBuilder的方法不是線程安全的(線程安全就是多線程訪問時,采用了加鎖機制,當一個線程訪問該類的某個數據時,進行保護,其他線程不能進行訪問直到該線程讀取完,其他線程才可使用。不會出現數據不一致或者數據污染。線程不安全就是不提供數據訪問保護,有可能出現多個線程先后更改數據造成所得到的數據是臟數據)。?

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

在Java中規定,一旦聲明String的內容就不可再改變,如果要改變,改變的肯定是String的引用地址。 如果一個字符串需要經常被改變,則必須使用 StringBuffer類。 在String類中可以通過“+”來連接字符串,在StringBuffer中只能使用方法append()來連接字符串。?

public class Test{

?

? ? public static void main(String args[]){

? ? ? ?StringBuffer sBuffer = new StringBuffer(" test");

? ? ? ?sBuffer.append(" String Buffer");

? ? ? ?System.out.println(sBuffer);??

? ?}

}

?

以上實例編譯運行結果如下:?

test String Buffer

?

StringBuffer 方法 以下是StringBuffer類支持的主要方法:?

序號方法描述1public StringBuffer append(String s) 將指定的字符串追加到此字符序列。2public StringBuffer reverse() 將此字符序列用其反轉形式取代。3public delete(int start, int end)4public insert(int offset, int i) 將 int 參數的字符串表示形式插入此序列中。5replace(int start, int end, String str) 使用給定 String 中的字符替換此序列的子字符串中的字符。

下面的列表里的方法和String類的方法類似:? 使用append()來連接字符串?

public class StringBufferT1{

? ? public static void main(String args[]){

? ? ? ? StringBuffer buf = new StringBuffer() ;? ? // 聲明StringBuffer對象?

? ? ? ? buf.append("Hello ") ;? ? ? ? ? ? ? ? ? ? // 向StringBuffer中添加內容

? ? ? ? buf.append("World").append("!!!") ;? ? ? ? // 可以連續調用append()方法

? ? ? ? buf.append("\n") ;? ? ? ? ? ? ? ? ? ? ? ? // 添加一個轉義字符

? ? ? ? buf.append("數字 = ").append(1).append("\n") ;? ? // 添加數字

? ? ? ? buf.append("字符 = ").append('C').append("\n");? ? ?// 添加字符

? ? ? ? buf.append("布爾 = ").append(true) ;? ? // 添加布爾值

? ? ? ? System.out.println(buf) ;? ? ? ? ? ? // 直接輸出對象,調用toString()

? ? }

};

?

在任意處為StringBuffer添加內容?

public class StringBufferT3{

? ? public static void main(String args[]){

? ? ? ? StringBuffer buf = new StringBuffer() ;? ? // 聲明StringBuffer對象?

? ? ? ? buf.append("World!!") ;? ? ? ? // 添加內容

? ? ? ? buf.insert(0,"Hello ") ;? ? ? ? // 在第一個內容之前添加內容

? ? ? ? System.out.println(buf) ;

? ? ? ? buf.insert(buf.length(),"MM~") ;? ? // 在最后添加內容

? ? ? ? System.out.println(buf) ;

? ? }

};

?

在任意處為StringBuffer添加內容?

public class StringBufferT5{

? ? public static void main(String args[]){

? ? ? ? StringBuffer buf = new StringBuffer() ;? ? // 聲明StringBuffer對象?

? ? ? ? buf.append("Hello ").append("World!!") ;? ? ? ? // 向StringBuffer添加內容

? ? ? ? buf.replace(6,11,"AAA") ;? ? ? ? // 將world的內容替換

? ? ? ? System.out.println("內容替換之后的結果:" + buf) ;? ? // 輸出內容

? ? }

};

?

從StringBuffer中刪除指定范圍的字符串?

public class StringBufferT7{

? ? public static void main(String args[]){

? ? ? ? StringBuffer buf = new StringBuffer() ;? ? // 聲明StringBuffer對象?

? ? ? ? buf.append("Hello ").append("World!!") ;? ? ? ? // 向StringBuffer添加內容

? ? ? ? buf.replace(6,11,"AAA") ;? ? ? ? // 將world的內容替換

? ? ? ? String str = buf.delete(6,15).toString() ;? ? // 刪除指定范圍中的內容

? ? ? ? System.out.println("刪除之后的結果:" + str) ;? ? // 輸出內容

? ? }

};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540215.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540215.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540215.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

sharepoint 2007功能增強解決方案,資料收集

一、關于QuickFlow,sharepoint可視化工作流增強包 http://www.cnblogs.com/jianyi0115/tag/QuickFlow/default.html?page1 http://quickflow.codeplex.com/ 二、關于SharePoint Permission Extension,視圖、列表字段權限功能增強 http://sppex.codeplex…

[轉載] 面試題:說說Java中接口、類、成員變量、成員方法、構造方法有哪些訪問修飾符和他們的作用范圍

參考鏈接: Java中的訪問修飾符 * 問題:說說Java中接口、類、成員變量、成員方法、構造方法有哪些訪問修飾符和他們的作用范圍 * 答:接口的訪問修飾符只有public 1個 * 類的訪問修飾符有public和默認(就是不寫的)2個 * 成員方法的訪問修…

使用IHttpHandler做權限控制[ASP.NET | IHttpHandler | AjaxPro | UserHostName]

正文 Web.Config配置如下: <add verb"POST,GET"path"/page/*.aspx,/page/*/*.aspx,/page/*/*/*.aspx,/page/*/*/*/*.aspx,/page/*/*/*/*/*.aspx"type"WebLibrary.PowerManage.HttpHanderPowerControls"/> 整個IHttpHandler實現代碼如下: /…

[轉載] Java 中字符串轉整型和整型轉字符串

參考鏈接&#xff1a; Java中的字符串到整數– parseInt() Java 中字符串轉整型和整型轉字符串 1.字符串轉整型Java代碼&#xff0c;字符串為純數字的情況下&#xff0c;調用Integer的靜態方法parseInt或者valueOfJava代碼&#xff0c;如果單個字符或字符串&#xff0c;需要切…

Gram matrix 格拉姆矩陣

2019獨角獸企業重金招聘Python工程師標準>>> Gram matrix 度量各個維度自己的特性以及各個維度之間的關系。 來自&#xff1a;https://www.zhihu.com/question/49805962?fromprofile_question_card 由感知機&#xff08;對偶感知機中需要計算樣本點兩兩之間的內積和…

[轉載] 用Java語言實現對十六進制字符串異或運算

參考鏈接&#xff1a; 交換兩個字符串&#xff0c;而無需在Java中使用第三個用戶定義的變量 前言&#xff1a;好久沒有寫博客&#xff0c;最近一年感覺真是好忙&#xff0c;各種做不完的工作。相信很多上班族都會有這種感覺。最近對NFC進行寫卡操作&#xff0c;需要計算一個校…

MySQL日常應用操作記錄

1.知道一個字段名&#xff0c;怎樣查到它在數據庫里的哪張表里&#xff1f; USE Information_schema;SELECT TABLE_NAME FROM COLUMNS WHERE COLUMN_NAME字段名稱; MySQL中查看庫表字段信息都在information_schemal中&#xff0c;獲取數據字典等信息都要通過這個視圖。 如&…

[轉載] 【Java】將一個字符串的字符排序,按ASCII表的順序從小到大

參考鏈接&#xff1a; 在Java中搜索字符串中的字符和子字符串 將一個字符串的字符按ASCII表的順序從小到大排序&#xff0c;如將字符串“asdafxcvMADb”排序為“ADMaabcdfsvx” 算法的基本思想&#xff1a; 先將字符串轉化為一個char類型的數組&#xff0c;來進行存儲&#xf…

如果只做前端驗證的話,談jjdd.com的看照片功能。

如果你在上海&#xff0c;并且坐過地鐵的話&#xff0c;你肯定知道jjdd.com。 這個網站和百合&#xff0c;世紀佳緣類似&#xff0c;都是交朋友的性質。 在jjdd.com中有個很重要的功能&#xff1a;如果你上傳的照片比你想看的人少的話&#xff0c;你是不能看她的照片的。 例如如…

[轉載] 快速學習-Mybatis框架概述

參考鏈接&#xff1a; Java在競爭性編程中的快速I/O 第1章 框架概述 1.1 什么是框架 1.1.1 什么是框架 框架&#xff08;Framework&#xff09;是整個或部分系統的可重用設計&#xff0c;表現為一組抽象構件及構件實例間交互的方法;另一種定義認為&#xff0c;框架是可被…

3、MySQL的數據類型介紹

上一章節內容主要介紹了一些MySQL中對表和庫的增刪改查操作&#xff0c;對于上一章中對與表中字段的一些定義進行說明&#xff0c;本章主要介紹關于數據庫類型的一些定義。一、概述&#xff1a;MySQL數據庫中的數據大致可以分為以下幾類&#xff0c;從而實現數據庫在操作的時候…

[轉載] 必須要會回答的Java面試題(字符串篇)

參考鏈接&#xff1a; 比較Java中的兩個字符串String 最近很多學習java的小白問我字串相關的問題&#xff0c;覺得很有必要整理下&#xff0c;以方便初學者理解字符串以及應對今后面試中考官的提問。 如果你是有幾年Java開發經驗&#xff0c;可以根據目錄選擇性的閱讀以下內…

[轉載] java如何實現一個字符串的反轉和替換

參考鏈接&#xff1a; 反轉Java中的字符串String 一、java字符串的反轉 1.利用java字符串的拼接實現字符串的反轉&#xff0c;代碼如下&#xff1a; public static String reverse(String s){ int lens.length(); String str""; for (int i 0; i < len; i) { …

java 中的instanceof

java 中的instanceof 運算符是用來在運行時指出對象是否是特定類的一個實例。instanceof通過返回一個布爾值來指出&#xff0c;這個對象是否是這個特定類或者是它的子類的一個實例。 用法&#xff1a;result object instanceof class參數&#xff1a;Result&#xff1a;布爾類…

[轉載] 將一個整數型字符串轉換為一個整數

參考鏈接&#xff1a; Java中整數到字符串轉換的不同方法 package com.utl.string; /* * 將一組整數字符串轉換為整數 * 例&#xff1a;"234"轉換為整數型234 * 分析&#xff1a;涉及到許多問題&#xff0c;例如非法輸入&#xff0c;有正負號&#xff0c;是否為空字…

升級PowerShell至4.0版本

為了更好的使用Cmder v1.2&#xff0c;不得不升級PowerShell為4.0。 不知道Cmder的&#xff0c;可以點擊這里&#xff1a;https://github.com/cmderdev/cmder 和 逆天神器 cmder。 Powershell是運行在Windows機器上實現系統和應用程序管理自動化的命令行腳本環境。 需要.NET環境…

[轉載] 字符串太長 pep8_Python f字符串– PEP 498 –文字字符串插值

參考鏈接&#xff1a; 從Java中的字符串中刪除前導零 字符串太長 pep8 Python f-strings or formatted strings are the new way to format strings. This feature was introduced in Python 3.6 under PEP-498. It’s also called literal string interpolation. Python f字符…

備忘(持續更新。。。)

1、在springmvc這個框架里面&#xff0c;創建新的業務邏輯層&#xff0c;dao、service層至少需要一個接口&#xff0c;項目才能跑起來 2、獲取當前用戶桌面路徑 File desktopDir FileSystemView.getFileSystemView() .getHomeDirectory();String desktopPath desktopDir.getA…

[轉載] 字符串操作截取后面的字符串_對字符串的5個必知的熊貓操作

參考鏈接&#xff1a; 修剪Java中的字符串(刪除前導和尾隨空格) 字符串操作截取后面的字符串 We have to represent every bit of data in numerical values to be processed and analyzed by machine learning and deep learning models. However, strings do not usually co…

更改域控制器的計算機名

林功能級別必須為Windows Server 2003及以上 1. netdom computername Server08-1.contoso.com /add:08Server1.contoso.com 2. netdom computername Server08-1.contoso.com /makeprimary:08Server1.contoso.com 3. Restart your computer 4. netdom computername 08Server1.co…