StringBuilder()的使用

Sharon Peng
4 min readNov 6, 2019

--

StringBuilder跟StringBuffer 是一個classes類似String的classes但是比string還要更有可變動性。

也就是說StringBuilder和StringBuffer相較於String可以有更多空間活用。當我們宣告String時,要在裡面更改字串會比較麻煩。但是StringBuilder就很方便。用下面的例子來一一介紹。

只是StringBuilder和StringBuffer在運作上有些不同,但是他們的method可以說是一樣的,所以如果要換一個用法的話,如下面範例:

首先我們要使用的話,要先建一個StringBuilder的物件

import java.lang.StringBuilder;

StringBuilder str = new StringBuilder();

另一種寫法:

import java.lang.StringBuffer;

StringBuffer str = new StringBuffer();

使用它內部所給的一些method:

str.append() — 放入資料進去

放進去的資料可以是不同的形態:int, float, boolean, char, char[], String, double, long (可以自己試試看其他型態)

str.append("Welcome");
str.append(" to");
str.append("My blog");

str.insert() — 插入資料進去

str.insert(Index, “String”);

*注意:假設我字串目前是”Welcome”,只到6的話,我不可以寫str.insert(8, “xxx”),因為這樣會超出字串原本的所到的長度,會出現error。

Example:

str.append("Welcome"); // 0 ~ 6str.insert(6, "yoyoman"); 
// output : Welcomyoyomane 代表是把字串插入在6前面
str.insert(7, "yoyoman");
//
output : Welcomeyoyoman 把字串插入在7前面
str.insert(8, "yoyoman");
// output: error

str.delete() — 刪除字串

— str.delete(startIndex, endIndex)

*假設我要刪除第11~14行的字,裡面要這樣寫str.delete(11, 15, “xxx”);

*注意到我的endIndex是15(same as below “replace method”)

str.append("Welcome to my blog");
str.delete(11, 13); // delete "my"
// output: Welcome to blog

str.deleteCharAt() — 刪除特定字元

str.append("Welcome to my blog");
str.deleteCharAt(11); // delete "my"
// output: Welcome to y blog

str.reverse() — 翻轉字串

str.append("Welcome to my blog");
str.reverse();
// output: golb ym ot emocleW

str.replace(startIndex, endIndex, String) — 取代字串

*假設我要取代第11~14行的字,裡面要這樣寫str.replace(11, 15, “xxx”);

*注意到我的endIndex是15

str.setCharAt() — 將特定字元取代

str.append("Welcome to my blog");
str.setChar(11, 'M');
// output: Welcome to My blog

toString() — 回傳整串字串回去(用於寫在method時要呼叫回去)

capacity() — 整個字串的大小

假設是17個字,一個char是2byte所以大小是2 * 17 = 34

charAt(int Index) — 回傳字串上某位子的字元

str.append("Welcome to my blog");
char a = str.charAt(0);
// a == W

length() — 回傳字串的長度

假設是17個字,長度就是17

substring(Index) — 回傳string的次集合

substring(startIndex, endIndex)

— 這裡的endIndex一樣是跟replace() “endIndex -1"

str.append("Welcome to my blog");
String s = str.substring(7);
// output: to my blog
s = str.substring(8 , 11); // to應該是8~10 //但是規定就是要寫到11
// output: to

--

--

Sharon Peng
Sharon Peng

No responses yet