๐Ÿ“— Docs

[Java] StringBuffer, StringBuilder

ํŒŒ์ผ๊ณผ ๋ฏธ๋””์–ด
date
Apr 6, 2023
slug
StringBuffer-StringBuilder
author
status
Public
tags
Java
Blog
summary
String vs StringBuffer
type
Post
thumbnail
category
๐Ÿ“— Docs
updatedAt
Apr 19, 2023 05:56 PM

๋ถˆ๋ณ€ ํด๋ž˜์Šค(immutable class)์™€ ๊ฐ€๋ณ€ ํด๋ž˜์Šค(mutable class)

ย 
String ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋Š” ํ•œ ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๊ทธ ๊ฐ’์„ ์ฝ๊ธฐ๋งŒ ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ณ€๊ฒฐํ•  ์ˆ˜๋Š” ์—†๋‹ค. ํ•˜์ง€๋งŒ StringBufferํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋Š” ๊ทธ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
ย 
์ด์™€๊ฐ™์ด ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•œ ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๊ทธ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ํด๋ž˜์Šค๋ฅผ ๋ถˆ๋ฉด ํด๋ž˜์Šค( immutable class)๋ผ๊ณ  ํ•˜๋ฉฐ, ๋ฐ˜๋Œ€๋กœ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค๋ฅผ ๊ฐ€๋ณ€ ํด๋ž˜์Šค(mutable class)๋ผ๊ณ  ํ•œ๋‹ค.
ย 
StringBufferํด๋ž˜์Šค๋Š” append(), insert() ๋ฉ”์†Œ๋“œ์™€ ๊ฐ™์ด ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” set๋ฉ”์†Œ๋“œ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.
ย 

append() ๋ฉ”์†Œ๋“œ

StringBuffer str = new StringBuffer("Java");

System.out.println("์›๋ณธ ๋ฌธ์ž์—ด : " + str);

 

System.out.println(str.append("์ˆ˜์—…"));

System.out.println("append() ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ํ›„ ์›๋ณธ ๋ฌธ์ž์—ด : " + str);
// ์‹คํ–‰ ๊ฒฐ๊ณผ
// ์›๋ณธ ๋ฌธ์ž์—ด : Java

// Java์ˆ˜์—…

// append() ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ํ›„ ์›๋ณธ ๋ฌธ์ž์—ด : Java์ˆ˜์—…
ย 

capacity() ๋ฉ”์†Œ๋“œ

capacity() ๋ฉ”์†Œ๋“œ๋Š” StringBuffer ์ธ์Šคํ„ด์Šค์˜ ํ˜„์žฌ ๋ฒ„ํผ ํฌ๊ธฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
StringBuffer str01 = new StringBuffer();

StringBuffer str02 = new StringBuffer("Java");

 

System.out.println(str01.capacity());

System.out.println(str02.capacity());
// ์‹คํ–‰ ๊ฒฐ๊ณผ

// 16

// 20
ย 

delete() ๋ฉ”์†Œ๋“œ

delete() ๋ฉ”์†Œ๋“œ๋Š” ์ „๋‹ฌ๋œ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ํ•ด๋‹น ๋ฌธ์ž์—ด์—์„œ ์ œ๊ฑฐํ•จ
StringBuffer str = new StringBuffer("Java Oracle");

System.out.println("์›๋ณธ ๋ฌธ์ž์—ด : " + str);

 

โ‘  System.out.println(str.delete(4, 8));

System.out.println(str.deleteCharAt(1));

System.out.println("deleteCharAt() ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ํ›„ ์›๋ณธ ๋ฌธ์ž์—ด : " + str);
// ์‹คํ–‰ ๊ฒฐ๊ณผ

// ์›๋ณธ ๋ฌธ์ž์—ด : Java Oracle

// Javacle

// Jvacle

// deleteCharAt() ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ํ›„ ์›๋ณธ ๋ฌธ์ž์—ด : Jvacle
ย 

insert() ๋ฉ”์†Œ๋“œ

๋‹ค์Œ ์˜ˆ์ œ๋Š” insert() ๋ฉ”์†Œ๋“ค ์ด์šฉํ•˜์—ฌ ํ•œ ๋ฌธ์ž์—ด ์ค‘๊ฐ„์— ๋‹ค๋ฅธ ๋ฌธ์ž์—ด์„ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.
StringBuffer str = new StringBuffer("Java ๋งŒ์„ธ!!");

System.out.println("์›๋ณธ ๋ฌธ์ž์—ด : " + str);

 

โ‘  System.out.println(str.insert(4, "Script"));

System.out.println("insert() ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ํ›„ ์›๋ณธ ๋ฌธ์ž์—ด : " + str);
// ์‹คํ–‰ ๊ฒฐ๊ณผ

// ์›๋ณธ ๋ฌธ์ž์—ด : Java ๋งŒ์„ธ!!

// JavaScript ๋งŒ์„ธ!!

// insert() ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ํ›„ ์›๋ณธ ๋ฌธ์ž์—ด : JavaScript ๋งŒ์„ธ!!

setCharAt(idx, value) ๋ฉ”์†Œ๋“œ

insert() ๋ฉ”์†Œ๋“œ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ํ•ด๋‹น ์ธ๋ฑ์Šค ์•ž์˜ ๊ฐ’์„ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
StringBuffer sb = new StringBuffer("Java");
System.out.println(sb.insert(4,'6'));
System.out.println(sb.setCharAt(4,'8'));
// ์‹คํ–‰ ๊ฒฐ๊ณผ

// Java6 -> insert;
// Java8 -> setCharAt;
ย 

ย 

reverse(idx, idx, value)

์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์ธ๋ฑ์Šค๊นŒ์ง€ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜
ย 

indexOf(value)

์ž…๋ ฅ ๊ฐ’์˜ ์ฒซ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋‹ค.