StringBuffer

๊ฐœ์š”

String์˜ ๋‚ด๋ถ€ ๊ฐ’์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.
์•„๋ž˜ ์ฝ”๋“œ์—์„œ immutable ๊ฐ์ฒด๋ฅผ ์ˆ˜์ •ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, โ€œabcdefโ€๋ผ๋Š” ์ƒˆ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ ๊ฒƒ์ด๋‹ค.

String immutable = "abc";
immutable = immutable + "def";

๋‚ด๋ถ€๊ฐ’์ด ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ž์—ด์„ ๋งŒ๋“œ๋ ค๋ฉด StringBuilder ๋˜๋Š” StringBuffer์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

StringBuffer sb = new StringBuffer("abc");
sb.append("def");

StringBuffer์˜ append ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์žˆ๋‹ค.
String๊ณผ String Buffer, String Builder๋กœ ๋ฌธ์ž์—ด์„ ์ˆ˜์ •ํ•  ๋•Œ ์–ด๋–ค ์ฐจ์ด์  ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด์ž.

String vs String Buffer vs String Builder

String ๊ฐ์ฒด๋Š” ๋‚ด๋ถ€๊ฐ’์ด ๋ณ€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ๋ฌธ์ž์—ด์„ ์ˆ˜์ •ํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
๋”ฐ๋ผ์„œ ๋ฌธ์ž์—ด ๊ฐ’๋งŒ ๋ณ€๊ฒฝํ•˜๋Š” String Builder๋‚˜ String Buffer์— ๋น„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง„๋‹ค.
ํ•˜์ง€๋งŒ ๋ถˆ๋ณ€์„ฑ ๋•๋ถ„์— ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ„์— ์•ˆ์ „ํ•˜๊ฒŒ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

String Buffer๋Š” append๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ๊ฐ’์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ์Šค๋ ˆ๋“œ์— ์•ˆ์ „ํ•˜๋‹ค. String Builder๋Š” ์Šค๋ ˆ๋“œ์— ์•ˆ์ „ํ•˜์ง€ ์•Š์ง€๋งŒ, ์•ˆ์ „ํ•œ ๊ตฌํ˜„์ธ String Buffer์— ๋น„ํ•ด ๋น ๋ฅด๋‹ค. ํ•˜์ง€๋งŒ ์„ฑ๋Šฅ์—์„œ ํฐ ์ฐจ์ด๋Š” ์—†๋‹ค. ์ƒํ™ฉ์— ๋งž์ถฐ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ ์‚ฌ์ด์—์„œ ๋ฌธ์ž์—ด์„ ์ˆ˜์ •ํ•  ์ผ์ด ์žˆ์œผ๋ฉด String Buffer๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋‹จ์ผ ์Šค๋ ˆ๋“œ์—์„œ ๋ฌธ์ž์—ด ์ˆ˜์ •์€ String Builder๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค

append ์‚ฌ์šฉ์˜ˆ์‹œ

StringBuffer sb = new StringBuffer("abc");
StringBuffer sb2 = sb.append(true);
sb.append('d').append(10.0);

// sb = "abctrue10.0"
// sb2 = "abctrue10.0"

insert์‚ฌ์šฉ์˜ˆ์‹œ

StringBuffer insert(int pos, boolean b)
StringBuffer insert(int pos, char c)
StringBuffer insert(int pos, char[ ] str)
StringBuffer insert(int pos, double d)
StringBuffer insert(int pos, float f)
StringBuffer insert(int pos, int i)
StringBuffer insert(int pos, long l)
StringBuffer insert(int pos, Object obj)
StringBuffer insert(int pos, String str)
๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์€ ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ™”์—ฌ ์ง€์ •๋œ ์œ„์น˜์— ์ถ”๊ฐ€ํ•œ๋‹ค. pos๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘
StringBuffer sb = new StringBuffer("0123456");
sb.insert(4,'.');

// sb = 0123.456

delete ์‚ฌ์šฉ์˜ˆ์‹œ

StringBuffer delete(int start, int end)
์‹œ์ž‘์œ„์น˜๋ถ€ํ„ฐ ๋์œ„์น˜ ์‚ฌ์ด์— ์žˆ๋Š” ๋ฌธ์ž ์ œ๊ฑฐ (๋ ์œ„์น˜์˜ ๋ฌธ์ž๋Š” ์ œ์™ธ)
StringBuffer sb = new StringBuffer("0123456");
StringBuffer sb2 = sb.delete(3,6);

sb = "0126"
sb2 = "0126"

deleteCharAt ์‚ฌ์šฉ์˜ˆ์‹œ

StringBuffer deleteCharAt(int index)
์ง€์ •๋œ ์œ„์น˜์˜ ๋ฌธ์ž ์ œ๊ฑฐ
StringBuffer sb = new StringBuffer("0123456");
sb.deleteCharAt(3);

sb = "012456"

์ฐธ๊ณ  ๋ธ”๋กœ๊ทธ:

์ฐธ๊ณ  ํ•˜๋ฉด ์ข‹์„ ๋ธ”๋กœ๊ทธ:

Leave a comment