StringBuilder類

1.1 StringBuilder類概述
StringBuilder:是一個可變的字符串。字符串緩沖區類。
String和StringBuilder的區別:
String的內容是固定的
StringBuilder的內容是可變的
1.1.1 +=拼接字符串耗費內存原因:
每次拼接都會產生新的字符串對象,而利用StringBuilder來拼接字符串自始至終用的都是同一個StringBuilder容器
StringBuilder類
1.2 StringBuilder類的常用方法
A:構造方法:
StringBuilder()
B:成員方法:
public int capacity():返回當前容量 (理論值)
public int length():返回長度(已經存儲的字符個數)
public StringBuilder append(任意類型):添加數據,并返回自身對象
public StringBuilder reverse():反轉功能
1.2.1 案例代碼十三:

package com.itheima_01;
/** StringBuilder:是一個可變的字符串。字符串緩沖區類。** String和StringBuilder的區別:* String的內容是固定的。* StringBuilder的內容是可變的。** 構造方法:* StringBuilder()** 成員方法:* public int capacity():返回當前容量* public int length():返回長度(字符數)** 容量:理論值* 長度:實際值*/
public class StringBuilderDemo {
public static void main(String[] args) {
//創建對象
StringBuilder sb = new StringBuilder();
System.out.println("sb:"+sb);
System.out.println("sb.capacity():"+sb.capacity());
System.out.println("sb.length():"+sb.length());
}
}

1.2.2 案例代碼十四:

package com.itheima_02;
/** 添加功能*        public StringBuilder append(任意類型):添加數據,并返回自身對象* 反轉功能*        public StringBuilder reverse()*/
public class StringBuilderDemo {
public static void main(String[] args) {
//創建對象
StringBuilder sb = new StringBuilder();
//public StringBuilder append(任意類型)
//StringBuilder sb2 = sb.append("hello");
/*
System.out.println("sb:"+sb);
System.out.println("sb2:"+sb2);
System.out.println(sb == sb2); //true
*/
/*
sb.append("hello");
sb.append("world");
sb.append(true);
sb.append(100);
*/
//鏈式編程
sb.append("hello").append("world").append(true).append(100);
System.out.println("sb:"+sb);
//public StringBuilder reverse()
sb.reverse();
System.out.println("sb:"+sb);
}
}

1.3 StringBuilder案例1.3.1 案例一需求:
StringBuilder和String通過方法完成相互轉換
1.3.1.1 案例代碼十五:

package com.itheima_03;
/** StringBuilder和String的相互轉換** StringBuilder -- String* public String toString():通過toString()就可以實現把StringBuilder轉成String** String -- StringBuilder* StringBuilder(String str):通過構造方法就可以實現把String轉成StringBuilder*/
public class StringBuilderTest {
public static void main(String[] args) {
//StringBuilder -- String
/*
StringBuilder sb = new StringBuilder();
sb.append("hello").append("world");
String s = sb.toString();
System.out.println(s);
*/
//String -- StringBuilder
String s = "helloworld";
StringBuilder sb = new StringBuilder(s);
System.out.println(sb);
}
}

1.3.2 案例二需求:
利用StringBuilder把數組拼接成一個字符串
舉例:
int[] arr = {1,2,3};
結果:
[1, 2, 3]
1.3.2.1 案例代碼十六:

package com.itheima_03;
/** 把數組拼接成一個字符串* 舉例:* int[] arr = {1,2,3};* 結果:* [1, 2, 3]*/
public class StringBuilderTest2 {
public static void main(String[] args) {
//定義一個數組
int[] arr = {1,2,3};
//寫方法實現拼接
//調用方法
String s = arrayToString(arr);
//輸出結果
System.out.println("s:"+s);
}
/** 兩個明確:* 返回值類型:String* 參數列表:int[] arr*/
public static String arrayToString(int[] arr) {
StringBuilder sb = new StringBuilder();
//[1, 2, 3]
sb.append("[");
for(int x=0; x<arr.length; x++) {
if(x==arr.length-1) {
sb.append(arr[x]);
}else {
sb.append(arr[x]).append(", ");
}
}
sb.append("]");
String result = sb.toString();
return result;
}
}

1.3.3 案例三需求:
利用StringBuilder完成字符串反轉
1.3.3.1 案例代碼十七:

package com.itheima_03;import java.util.Scanner;/** 把字符串反轉** 分析:* A:鍵盤錄入一個字符串* B:寫方法實現反轉* String -- StringBuilder -- reverse() -- String* C:調用方法* D:輸出結果*/
public class StringBuilderTest3 {
public static void main(String[] args) {
//鍵盤錄入一個字符串
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個字符串:");
String s = sc.nextLine();
//寫方法實現反轉
//調用方法
String result = myReverse(s);
//輸出結果
System.out.println("result:"+result);
}
/** 兩個明確:* 返回值類型:String* 參數列表:String*/
public static String myReverse(String s) {
//String -- StringBuilder -- reverse() -- String
StringBuilder sb = new StringBuilder(s);
sb.reverse();
String result = sb.toString();
return result;
}
}

1.3.4 案例四需求:
判斷一個字符串是否是對稱字符串
例如"abc"不是對稱字符串,"aba"、"abba"、"aaa"、"mnanm"是對稱字符串
1.3.4.1 案例代碼十八:

package com.itheima_03;
import java.util.Scanner;/** 判斷一個字符串是否是對稱字符串* 例如"abc"不是對稱字符串,"aba"、"abba"、"aaa"、"mnanm"是對稱字符串** 分析:* A:鍵盤錄入一個字符串* B:寫方法實現判斷一個字符串是否是對稱字符串* 把字符串反轉,和反轉前的字符串進行比較,如果內容相同,就說明是對稱字符串* C:調用方法* D:輸出結果*/
public class StringBuilderTest4 {
public static void main(String[] args) {
//鍵盤錄入一個字符串
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個字符串:");
String s = sc.nextLine();
//寫方法實現判斷一個字符串是否是對稱字符串
//調用方法
boolean b = isSymmetry(s);
//輸出結果
System.out.println("b:"+b);
}
/** 兩個明確:* 返回值類型:boolean* 參數列表:String s*/
public static boolean isSymmetry(String s) {
//把字符串反轉,和反轉前的字符串進行比較,如果內容相同,就說明是對稱字符串
StringBuilder sb = new StringBuilder(s);
sb.reverse();
String result = sb.toString();
return result.equals(s);
}
}

轉載于:https://blog.51cto.com/13587708/2084585

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

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

相關文章

如何使用搜索技巧來成為一名高效的程序員

沒有人是完全獨立的孤島&#xff0c;每個人都是整體的一部分。—— 約翰多恩對于缺乏編程知識的人來說&#xff0c;完全有可能編寫一個網頁或小程序。如果在用Google搜索相關示例時幸運的話&#xff0c;可以搜到現成的代碼。即使是經驗豐富的程序員&#xff0c;通常也會為了節省…

電開大計算機應用基礎作業,2016年電大-電大計算機應用基礎作業 答案.doc

2016年電大-電大計算機應用基礎作業 答案計算機作業2單項選擇題&#xff1a;第1題:在Word中編輯文本時&#xff0c;編輯區顯示的“水印”在打印時( )出現在紙上。(2分)A、不會B、全部C、一部分D、大部分第2題:Word文檔以文件形式存放于磁盤中&#xff0c;其默認的文件擴展名為(…

軟件測試的步驟

大型軟件系統的測試過程基本上由模塊測試、子系統測試、系統測試、驗收測試和平行運行等五個步驟組成。 1.模塊測試 在設計得好的軟件系統中&#xff0c;每個模塊完成一個清晰定義的子功能&#xff0c;而且這個子功能和同級其他模塊的功能之間沒有相互依賴關系。因此&#xff…

linux系統優化思路

文章目錄一. 影響linux性能的因素1.系統硬件資源2.操作系統相關資源3.應用程序軟件資源二. 分析系統性能涉及的人員1.Linux運維人員2.系統架構設計人員3.軟件開發人員三. 系統性能分析工具四.思路總結一. 影響linux性能的因素 1.系統硬件資源 1&#xff09;cpu 2&#xff09;…

遞歸鎖

from threading import Thread,RLock import timemutexAmutexBRLock()#一個線程拿到鎖&#xff0c;counter加1,該線程內又碰到加鎖的情況&#xff0c;則counter繼續加1&#xff0c; #這期間所有其他線程都只能等待&#xff0c;等待該線程釋放所有鎖&#xff0c;即counter遞減到…

UI體系的本質是結構化存在

UI體系的本質是結構化存在&#xff1b; UI系統的問題需要使用結構化的思維來處理。

什么是視圖

視圖是存儲在數據庫中的查詢的SQL 語句&#xff0c;它主要出于兩種原因&#xff1a;安全原因&#xff0c; 視圖可以隱藏一些數據&#xff0c;如&#xff1a;社會保險基金表&#xff0c;可以用視圖只顯示姓名&#xff0c;地址&#xff0c;而不顯示社會保險號和工資數等&#xff…

30分鐘,讓你成為一個更好的程序員

我相信激勵是非常重要的。這也是為什么我常常把時間管理&#xff08;這些書激勵我不管改進我的時間管理方法&#xff09;的書和軟件開發拿出來看看。我最近剛看完一本 書&#xff0c;“Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman”。這本書推動我…

如何啟用計算機的遠程服務,遠程桌面服務,教您怎么打開遠程桌面服務

遠程桌面可以通過控制另一臺電腦的功能&#xff0c;讓網絡管理員可以在家中安全的控制單位的服務器&#xff0c;而且這個功能是系統內置的&#xff0c;所以比使用其他第三方的遠程控制工具更方便。那么我的重點來了&#xff0c;我今天就教你們怎么打開桌面遠程服務&#xff0c;…

pipenv相關指令

pip install pipenv 安裝pipenv pipenv install 創建虛擬環境 &#xff08;項目根目錄下&#xff09; pipenv shell     進入虛擬環境&#xff08;如果不存在&#xff0c;則創建并進入虛擬環境&#xff09; pipenv install flask   安裝模塊 pipenv uninstall flask 卸…

簡易多線程爬蟲框架

本文首發于知乎 本文使用多線程實現一個簡易爬蟲框架&#xff0c;讓我們只需要關注網頁的解析&#xff0c;不用自己設置多線程、隊列等事情。調用形式類似scrapy&#xff0c;而諸多功能還不完善&#xff0c;因此稱為簡易爬蟲框架。 這個框架實現了Spider類&#xff0c;讓我們只…

【小松教你手游開發】【unity實用技能】給每個GameObject的打開關閉加上一個漸變...

在游戲開發中&#xff0c;經常會因為直接將GameObject&#xff0c;setActive的方式打開關閉&#xff0c;這種方式效果太過生硬而給它加上一個Tween 可能是AlphaTween或者ScaleTween。 再加上一個PlayTween來做控制。 這樣子需要在每個GameObject上加上這幾個Component不說&…

靜態網頁和動態網頁

靜態網頁是指不應用程序而直接或間接制作成html的網頁&#xff0c;這種網頁的內容是固定的&#xff0c;修改和更新都必須要通過專用的網頁制作工具&#xff0c;比如Dreamweaver。動態網頁是指使用網頁腳本語言&#xff0c;比如php、asp、asp.net等&#xff0c;通過腳本將網站內…

在微型計算機中 如果電源突然中斷,微型計算機在工作中電源突然中斷,則其中的信息全部丟失,再次通電后也不能恢復的..._考試資料網...

請根據下面的文字材料&#xff0c;完成一節課的教學設計。 絲綢之路 一座古樸典雅的“絲綢之路”巨型石雕&#xff0c;矗立在西安市玉祥門外。那馱著彩綢的一峰峰駱駝&#xff0c;高鼻凹眼的西域商人&#xff0c;精神飽滿&#xff0c;栩栩如生。商人們在這個東方大都市開了眼界…

Vmware上安裝RedHat Linux 7.3操作系統手冊

文章目錄1&#xff0e;點擊“創建新的虛擬機”&#xff0c;勾選“自定義”選項&#xff0c;點擊一步&#xff1b;2&#xff0e;默認選擇最高版本的workstations&#xff0c;點擊下一步&#xff1b;3&#xff0e;選擇“稍后安裝操作系統”&#xff0c;點擊下一步&#xff1b;4&a…

軟件開發的“三重門”

自從上次寫了“程序員技術練級攻略” 以來&#xff0c;就覺得似乎還有很多東西沒有談到&#xff0c;但當時沒有繼續思考了。而春節前有人問我&#xff0c;是做底層技術&#xff0c;還是做業務。這問題讓我思考了很多&#xff0c;不由自主地回顧了一 下我這十多年的軟件開發經歷…

軟件工程15 個人閱讀作業1

Task1&#xff1a;注冊個人博客賬號 個人博客地址 https://www.cnblogs.com/bmr666/ Task2&#xff1a;注冊碼云賬號 碼云賬號 https://gitee.com/bmr666 Task3&#xff1a;完成博客-閱讀與思考 閱讀參考材料&#xff0c;并回答下面幾個問題&#xff1a; &#xff08;1&#xf…

Windows Server 2008操作系統安裝手冊

文章目錄1&#xff0e;輸入語言和其他首選項&#xff0c;然后單擊“下一步”繼續&#xff1b;2&#xff0e;點擊“現在安裝”&#xff0c;啟動安裝程序&#xff1b;3&#xff0e;選擇要安裝的操作系統&#xff0c;這里選擇Windows Server 2008 R2 Enterprise&#xff08;完全安…

云計算機有哪些特征,你知道云計算有哪些核心特征嗎?

你知道云計算有哪些核心特征嗎?下面跟小編一起來了解下吧!!!1、敏捷&#xff1a;使用戶得以快速的&#xff0c;且以低價格的獲得技術架構資源。2、應用程序界面API的可達性是指允許軟件與云以類似“人機交互這種用戶界面設施交互相所相一致的方式”來交互。云計算系統典型的運…

從玩撲克到軟件開發

我以前不是做軟件開發的。在加入ThoughtWorks兩年之前&#xff0c;我主要靠玩撲克為生。當然&#xff0c;如果你曾跟我打聽過我前臂上的紋身&#xff0c;那你肯定已然聽過我的故事了。要是還沒有&#xff0c;等下次我們一起喝一杯時&#xff0c;我可以講給你聽。 我從未因為花…