๐ 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)
์
๋ ฅ ๊ฐ์ ์ฒซ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๋ค.