๐น ์๋ฃํ(Data Type)์ด๋ ?
์๋ฃํ(๋ฐ์ดํฐ ํ์ )์ ๋ณ์์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ์ข ๋ฅ์ ํฌ๊ธฐ, ์ฐ์ฐ ๋ฐฉ๋ฒ์ ์ ์ํ๋ ์์์ด๋ค.
์ฆ, ๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ป๊ฒ ์ ์ฅ๋๊ณ , ํ๋ก๊ทธ๋จ์์ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋์ด์ผ ํ๋์ง๋ฅผ ๋ช ์ํ๋ ์ญํ ์ ํ๋ค.
โฝ ์๋ฃํ์ ๋ถ๋ฅ
Java์์ ์ ๊ณตํ๋ ์๋ฃํ์ ๊ธฐ๋ณธ ์๋ฃํ(Primitive Data Type)๊ณผ ์ฐธ์กฐ ์๋ฃํ(Reference Data Type)์ผ๋ก ๋๋๋ค.
- ๊ธฐ๋ณธ ์๋ฃํ(Primitive Data Type) : ์ค์ ๊ฐ์ ์ ์ฅํ๋ ์๋ฃํ
- ์ฐธ์กฐ ์๋ฃํ(Reference Data Type) : ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๊ฐ์ ์ ์ฅํ๋ ์๋ฃํ
์๋ฅผ ๋ค์ด, int ํ์ ๋ณ์๋ ์ ์ซ๊ฐ์ ์ง์ ์ ์ฅํ์ง๋ง, String ํ์ ๋ณ์๋ ๋ฌธ์์ด์ด ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
๐ ๋ณ์(Variable)๋ ?
๋ณ์(Variable)๋ ๋ฐ์ดํฐ(Data)๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ํ๋ก๊ทธ๋จ์ด ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด๋ค.
๋ณ์์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ(value)์ด๋ผ ํ๋ค.
[ ๋ณ์์ ์ค์ํ ํน์ง ]
- ๋ณ์์ ์ด๋ฆ(name)๊ณผ ์๋ฃํ(type)์ ๋ณ๊ฒฝํ ์ ์๋ค.
- ๋ณ์์ ์ ์ฅ๋ ๊ฐ(value)์ ๋ณ๊ฒฝํ ์ ์๋ค.
๐น๊ธฐ๋ณธ ์๋ฃํ(Primitive Data Type)
์๋ฐ์์๋ ๋ฏธ๋ฆฌ ์ ์๋ 8๊ฐ์ง ๊ธฐ๋ณธ ์๋ฃํ์ด ์ ๊ณต๋๋ค.
๊ธฐ๋ณธ ์๋ฃํ์ ์ค์ ๊ฐ์ ๊ฐ์ง๋ ์๋ฃํ์ผ๋ก, ๊ธฐ๋ณธ ๊ฐ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ null์ ๊ฐ์ง ์ ์๋ค.
๐ ํน์ง
- Heap์ด ์๋ Stack ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋จ (๋จ, static ๋๋ final ์์๋ Method Area ์ ์ฅ ๊ฐ๋ฅ)
- ์ฒซ ๊ธ์๊ฐ ์๋ฌธ์๋ก ์์
- Wrapper ํด๋์ค(Integer, Double ๋ฑ)์ ๋ค๋ฅด๊ฒ null์ ๊ฐ์ง ์ ์์
๐ธ ์ ์ ์๋ฃํ
์๋ฐ์ ์ ์๋ฅผ ํํํ๊ธฐ ์ํ ์๋ฃํ์ ๋ํ์ ์ผ๋ก int, long์ด ์๋ค.
byte, short๋ ์์ง๋ง ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ๊ฐ ํ์ํ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๋ฉด ์ ์ฌ์ฉํ์ง ์๋๋ค.
์ ์ํ ํ์ | ํ ๋น๋๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ | ๋ฐ์ดํฐ์ ํํ ๋ฒ์ |
byte | 1 byte | -128 ~ 127 |
short | 2 byte | -215 ~ (215 - 1) |
-32,768 ~ 32,767 | ||
int | 4 byte | -231 ~ (231 - 1) |
-2,147,483,648 ~ 2,147,483,647 | ||
long | 8 byte | -263 ~ (263 - 1) |
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
[ ์์ ]
int age = 20;
long countOfStr = 8764827384923849L;
๐จ ์ฃผ์
long ๋ณ์์ ๊ฐ์ ๋์ ํ ๋, ๊ฐ์ด int ์๋ฃํ์ ์ต๋๊ฐ(2147483647)์ ์ด๊ณผํ๋ฉด L ์ ๋ฏธ์ฌ๋ฅผ ๋ถ์ฌ์ผ ํ๋ค.
๋ง์ฝ ์ ๋ฏธ์ฌ๋ฅผ ๋๋ฝํ๋ฉด ์ปดํ์ผ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
์๋ฌธ์ l๋ ๊ฐ๋ฅํ์ง๋ง, ์ซ์ 1๊ณผ ํผ๋๋ ์ ์์ผ๋ฏ๋ก ๋๋ฌธ์ L ์ฌ์ฉ์ ๊ถ์ฅํ๋ค.
โฝ ์ ์ ์ค๋ฒํ๋ก์ฐ(Overflow) / ์ธ๋ํ๋ก์ฐ(Underflow)
์ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ๋๋ ํด๋น ์๋ฃํ์ด ํํํ ์ ์๋ ์ต์/์ต๋ ํฌ๊ธฐ๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ค.
๋ง์ฝ ์๋ฃํ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ ๊ฐ์ ์ ์ฅํ๋ฉด ์ค๋ฒํ๋ก์ฐ(Overflow) ๋๋ ์ธ๋ํ๋ก์ฐ(Underflow)๊ฐ ๋ฐ์ํ์ฌ ์ํ์ง ์๋ ๊ฐ์ด ์ ์ฅ๋ ์ ์๋ค.
- ์ค๋ฒํ๋ก์ฐ(overflow) : ์๋ฃํ์ ์ต๋๊ฐ์ ์ด๊ณผํ๋ ๊ฐ์ ์ ์ฅํ ๋ ๋ฐ์
- ์ธ๋ํ๋ก์ฐ(underflow) : ์๋ฃํ์ ์ต์๊ฐ๋ณด๋ค ์์ ๊ฐ์ ์ ์ฅํ ๋ ๋ฐ์
[ ์์ ]
byte max = 127;
byte min = -128;
System.out.println((byte)(max + 1)); // -128 (Overflow ๋ฐ์)
System.out.println((byte)(min - 1)); // 127 (Underflow ๋ฐ์)
์๋ฐ์์ byte ํ์ ์ -128 ~ 127 ๋ฒ์์ ์ ์๋ง ํํํ ์ ์๋ค.
์์ ์ฝ๋์ฒ๋ผ ๋ฒ์๋ฅผ ์ด๊ณผํ๋ ์ฐ์ฐ์ ์ํํ๋ฉด, ์ค๋ฒํ๋ก์ฐ ๋๋ ์ธ๋ํ๋ก์ฐ๊ฐ ๋ฐ์ํ์ฌ ์์๊ณผ ๋ค๋ฅธ ๊ฐ์ด ์ ์ฅ๋ ์ ์๋ค.
โฝ ์ธ๋ ์ค์ฝ์ด ํ๊ธฐ๋ฒ (Underscore ํ๊ธฐ๋ฒ)
์ธ๋ ์ค์ฝ์ด ํ๊ธฐ๋ฒ์ JDK 7๋ถํฐ ์ง์ํ๋ ๋ฌธ๋ฒ์ผ๋ก, ํฐ ์ซ์์ ๊ฐ๋ ์ฑ์ ๋์ด๊ธฐ ์ํด ์ฝค๋ง ๋์ _(๋ฐ์ค)๋ก ๊ตฌ๋ถํ๋ ๋ฐฉ์์ด๋ค.
int cost = 1_000_000_000; // 1000000000
์ธ๋ ์ค์ฝ์ด _๋ ๋จ์ํ ๊ฐ๋ ์ฑ์ ์ํ ๊ฒ์ด๋ฉฐ, ์ซ์์ ๊ฐ์๋ ์ํฅ์ ์ฃผ์ง ์๋๋ค.
โฝ 2์ง์ / 8์ง์ / 16์ง์ ํ๊ธฐ๋ฒ
์๋ฐ์์ 2์ง์, 8์ง์, 16์ง์๋ฅผ ํน์ ๊ธฐํธ๋ฅผ ๋ถ์ฌ์ ํํํ ์ ์๋ค.
์ด๋ฌํ ์ ์ํ ๋ฐ์ดํฐ๋ int ์๋ฃํ์ ์ฌ์ฉํ์ฌ ์ ์ฅ๋๋ค.
์ง์ | ์ ๋์ฌ | ์์ |
2์ง์ (Binary) | 0b | int binary = 0b101; |
8์ง์ (Octal) | 0 | int octal = 023; |
16์ง์ (Hexadecimal) | 0x | int hex = 0xC; |
[ ์์ ]
int binary = 0b101; // 2์ง์: 5
int octal = 023; // 8์ง์: 19
int hex = 0xC; // 16์ง์: 12
- 2์ง์๋ 0b(์ซ์ 0 + ์ํ๋ฒณ b)๋ก ์์ํ๋ค.
- 8์ง์๋ 0(์ซ์ 0)์ผ๋ก ์์ํ๋ค.
- 16์ง์๋ 0x(์ซ์ 0 + ์ํ๋ฒณ x)๋ก ์์ํ๋ค.
๐ธ ์ค์ ์๋ฃํ
์๋ฐ์ ์ค์๋ฅผ ํํํ๊ธฐ ์ํ ์๋ฃํ์ ๋ํ์ ์ผ๋ก float๊ณผ double์ด ์๋ค.
๊ณผ๊ฑฐ์๋ float์ ๋ง์ด ์ฌ์ฉํ์ง๋ง, ๋ฉ๋ชจ๋ฆฌ ์ฉ๋ ์ฆ๊ฐ์ ์ฐ์ฐ ์ฑ๋ฅ ํฅ์์ผ๋ก ์ธํด ํ์ฌ๋ double์ด ๋ ๋ง์ด ์ฌ์ฉ๋๋ค.
๋ฐ๋ผ์ ์๋ฐ์ ๊ธฐ๋ณธ ์ค์ํ ํ์ ์ double์ด๋ค.
์ค์ํ ํ์ | ํ ๋น๋๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ | ๋ฐ์ดํฐ ํํ ๋ฒ์ | ๋ฆฌํฐ๋ด ํ์ ์ ๋ฏธ์ฌ |
float | 4 byte | (1.4 × 10โปโดโต) ~ (3.4 × 10³โธ) | F ๋๋ f |
double | 8 byte | (4.9 × 10โป³²โด) ~ (1.7 × 10³โฐโธ) | D ๋๋ d (์๋ต ๊ฐ๋ฅ) |
[ ์์ ]
float pi = 3.14F;
double morePi = 3.14159265358979323846;
๐จ ์ฃผ์
float์ ์ฌ์ฉํ ๊ฒฝ์ฐ, F ๋๋ f ์ ๋ฏธ์ฌ๋ฅผ ๋ฐ๋์ ๋ถ์ฌ์ผ ํ๋ค.
โฝ ์ค์ ์ฐ์ฐ ์ค์ฐจ
์ปดํจํฐ๋ ์ค์๋ฅผ 2์ง์ ํํ๋ก ๋ณํํ์ฌ ์ ์ฅํ๋๋ฐ, ์ด ๊ณผ์ ์์ ์ผ๋ถ ์ค์๋ฅผ ์ ํํ๊ฒ ํํํ ์ ์์ด ๋ถ๋ ์์์ ๋ฐฉ์์ ์ฌ์ฉํด ๊ทผ์ฟ๊ฐ์ผ๋ก ์ ์ฅํ๋ค.
๋ถ๋ ์์์ ๋ฐฉ์์ ๊ณ ์ ์์์ ๋ฐฉ์์ ๋นํด ํฐ ๋ฒ์์ ์ค์๋ฅผ ํํํ ์ ์์ง๋ง, ์ฌ์ ํ ์ค์ฐจ๊ฐ ๋ฐ์ํ ์ ์๋ค. ๋ฐ๋ผ์ ๋งค์ฐ ์ ํํ ๊ณ์ฐ์ด ํ์ํ ํ๋ก๊ทธ๋จ์์๋ ์ค์ํ ๋ฐ์ดํฐ ํ์ ์ ์ฌ์ฉ์ ํผํ๋ ๊ฒ์ด ์ข๋ค.
[ ์์ ]
double value1 = 12.23;
double value2 = 34.45;
// ๊ธฐ๋๊ฐ: 46.68
System.out.println(value1 + value2); // 46.68000000000001
์ ์์ ์์ ๋ ์ค์๋ฅผ ๋ํ ๊ฒฐ๊ณผ๊ฐ ๊ธฐ๋๊ฐ์ธ 46.68๊ณผ ์ฝ๊ฐ ์ฐจ์ด๊ฐ ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ด๋ ๋ถ๋ ์์์ ๋ฐฉ์์ ๊ทผ์ฟ๊ฐ ์ ์ฅ์ผ๋ก ์ธํ ์ฐ์ฐ ์ค์ฐจ ๋๋ฌธ์ด๋ค.
๋ฐ๋ผ์ ์ด๋ฌํ ์ค์ ์ฐ์ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์๋ฐ์์๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค.
โฝ ๋ถ๋์์์ ์ค์ฐจ ํด๊ฒฐ ๋ฐฉ๋ฒ
1๏ธโฃ ์ ์ํ ํ์ ์ ์ฌ์ฉํ์ฌ ๊ณ์ฐ
์ค์๋ฅผ ์ ์๋ก ๋ณํํ์ฌ ์ฐ์ฐ ํ ๋ค์ ๋๋๋ ๋ฐฉ์์ด๋ค.
double a = 1000.0;
double b = 999.9;
// ์ค์ฐจ ๋ฐ์
System.out.println(a - b); // 0.10000000000002274
// ์ ์ํ ๋ณํ ํ ์ฐ์ฐ
long a2 = (long)(a * 10);
long b2 = (long)(b * 10);
double result = (a2 - b2) / 10.0;
System.out.println(result); // 0.1
์์์ ์ ์ ์๋ก ๋ณํํ์ฌ ์ฐ์ฐํ๋ฉด, ์ค์ฐจ๋ฅผ ์ค์ผ ์ ์๋ค.
2๏ธโฃ BigDecimal ํด๋์ค ์ฌ์ฉ
์ ํํ ์์ ์ฐ์ฐ์ด ํ์ํ ๊ฒฝ์ฐ BigDecimal์ ์ฌ์ฉํ๋ฉด ์ข๋ค.
์ด๋, BigDecimal.valueOf() ์ฌ์ฉ์ ๊ถ์ฅํ๋ค.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal bigNumber1 = BigDecimal.valueOf(1000.0);
BigDecimal bigNumber2 = BigDecimal.valueOf(999.9);
BigDecimal result2 = bigNumber1.subtract(bigNumber2);
System.out.println(result2); // 0.1
}
}
โ BigDecimal.valueOf(double)์ ์ฌ์ฉํ๋ฉด ๋ด๋ถ์ ์ผ๋ก ์ ํํ ๊ฐ์ผ๋ก ๋ณํ๋๋ฉฐ, ๊ฐ๋ ์ฑ๊ณผ ์์ ์ฑ ๋ฉด์์ new BigDecimal(String)๋ณด๋ค ์ ๋ฆฌํ๋ค.
๐ new BigDecimal(double) ๋ฐฉ์์ ์ค์ฐจ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก ์ง์ํด์ผ ํ๋ค.
โฝ ์ค์์ ์ ํจ ์๋ฆฟ์(์ ๋ฐ๋)
์๋ฐ์์๋ ์ค์๋ฅผ ํํํ ๋, ๋ถ๋์์์ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉฐ, ์ค์ ํ์ ๋ณ๋ก ์ ํจ ์๋ฆฟ์์ ์ ํ์ด ์กด์ฌํ๋ค.
์ ํจ ์๋ฆฟ์(Precision)๋, ์ค์๊ฐ ํํํ ์ ์๋ ์ ์ฒด ์๋ฆฟ์๋ฅผ ์๋ฏธํ๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก ๊ฐ์๋ถ ํฌ๊ธฐ์ ์ํด ๊ฒฐ์ ๋๋ค.
์ค์ํ ํ์ | ์ง์์ ๊ธธ์ด | ๊ฐ์์ ๊ธธ์ด | ์ ํจ ์๋ฆฟ์ |
float | 8 bit | 23 bit | ์ฝ 6~7์๋ฆฌ ์ ํ๋ |
double | 11 bit | 52 bit | ์ฝ 15~16์๋ฆฌ ์ ํ๋ |
์ ํ์ ๊ฐ์ด, double์ float๋ณด๋ค ๊ฐ์๋ถ(bit ์)๊ฐ ํฌ๊ธฐ ๋๋ฌธ์ ๋ ๋์ ์ ๋ฐ๋๋ฅผ ์ ๊ณตํ๋ค.
์ฆ, ์ ํจ ์๋ฆฟ์๋ ์ค์์ ์ ๋ฐ๋๋ฅผ ์๋ฏธํ๊ธฐ๋ ํ๋ค.
[ ์์ ]
// ์งง์ ์ค์
double var1 = 3.14;
float var2 = 3.14f;
System.out.println("var1 : " + var1); // var1 : 3.14
System.out.println("var2 : " + var2); // var2 : 3.14
// ๊ธด ์ค์ (์ ๋ฐ๋ ํ
์คํธ)
double var3 = 3.14159265358979;
float var4 = 3.14159265358979f;
System.out.println("var3 : " + var3); // var3 : 3.14159265358979 - ์ ํํ ํํ
System.out.println("var4 : " + var4); // var4 : 3.1415927 - (์ ํจ ์๋ฆฌ ์ ํ์ผ๋ก ๋ฐ์ฌ๋ฆผ๋จ)
๐ก ์ค์ํ์ ์ ํ ๊ธฐ์ค
๋ง์ฝ ์ค์์ ์ ๋ฐ๋๊ฐ ์ค์ํ๋ค๋ฉด, ๋ณ์์ ํ์ ์ double๋ก ์ค์ ํ๋ฉด ๋๋ค.
double ํ์ ์ float ํ์ ๋ณด๋ค ์ฝ 2๋ฐฐ ๋์ ์ ๋ฐ๋(์ ํจ ์๋ฆฟ์ 15~16์๋ฆฌ)๋ฅผ ์ ๊ณตํ๋ฏ๋ก, ์ ํํ ๊ณ์ฐ์ด ํ์ํ ๋ ์ ํฉํ๋ค.
ํ์ง๋ง ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ๊ณผ ์๋๊ฐ ์ค์ํ ๊ฒฝ์ฐ float ํ์ ์ ๊ณ ๋ คํ ์ ์๋ค.
ํ์ง๋ง ์ ๋ฐ๋๊ฐ ๋ฎ์ ์ค์ฐจ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก, ํ์ํ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํด์ผ ํ๋ค.
โฝ ์ค์ ์ค๋ฒํ๋ก์ฐ / ์ธ๋ํ๋ก์ฐ
[ ์ค๋ฒํ๋ก์ฐ(Overflow) ]
์ค์ํ ๋ณ์์ ๊ฐ์ด ์ต๋๊ฐ์ ์ด๊ณผํ๋ฉด ์ค๋ฒํ๋ก์ฐ(Overflow)๊ฐ ๋ฐ์ํ๋ค.
ํ์ง๋ง ์ ์ํ๊ณผ ๋ฌ๋ฆฌ, ์ค์ํ์ ๊ฒฝ์ฐ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ๋ฉด ๊ฐ์ด ๋ฌดํ๋ (Infinity)๋ก ์ค์ ๋๋ค.
double max = Double.MAX_VALUE;
System.out.println(max * 2); // Infinity (์ค๋ฒํ๋ก์ฐ)
[ ์ธ๋ํ๋ก์ฐ(Underflow) ]
์ค์ํ ๋ณ์์ ๊ฐ์ด ํํ ๊ฐ๋ฅํ ์ต์๊ฐ๋ณด๋ค ์์ ๊ฐ์ด ๋๋ ๊ฒฝ์ฐ ์ธ๋ํ๋ก์ฐ(Underflow)๊ฐ ๋ฐ์ํ๋ค.
์๋ฐ์์๋ ์ด๋ฐ ๊ฐ์ด ๋ฐ์ํ๋ฉด 0์ผ๋ก ๋ฐ์ฌ๋ฆผ(RTZ, Rounded to Zero) ๋๊ฑฐ๋, ์๋ธ ๋ ธ๋ฉ(subnormal) ๊ฐ์ด ๋ ์๋ ์๋ค. (๋๋ถ๋ถ์ ์ฐ์ฐ์์ 0์ผ๋ก ์ฒ๋ฆฌ๋จ)
double min = Double.MIN_VALUE;
System.out.println(min / 2); // 0.0 (์ธ๋ํ๋ก์ฐ)
โฝ ์ง์(e) ํ๊ธฐ๋ฒ
์ง์ ํ๊ธฐ๋ฒ์ ์์ฃผ ํฐ ์ซ์ ๋๋ ์์ ์ซ์๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ํํํ๋ ๋ฐฉ๋ฒ์ผ๋ก, ๊ณผํ์ ํ๊ธฐ๋ฒ(scientific notation)์ด๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค. ์๋ฐ์์๋ e(๋๋ E)๋ฅผ ์ฌ์ฉํ์ฌ ํํํ ์ ์๋ค.
[ ์์ ]
double d1 = 1.234e2; // 1.234 × 10^2 → 123.4
double d2 = 1.7e+3; // 1.7 × 10^3 → 1700.0
double d3 = 1.7e-3; // 1.7 × 10^-3 → 0.0017
System.out.println(d1); // 123.4
System.out.println(d2); // 1700.0
System.out.println(d3); // 0.0017
๐ธ ๋ ผ๋ฆฌ ์๋ฃํ
๋ ผ๋ฆฌํ ์๋ฃํ์ ์ฐธ(true) ๋๋ ๊ฑฐ์ง(false)์ ๊ฐ์ ๊ฐ์ง๋ ์๋ฃํ์ ์๋ฏธํ๋ค.
์ด ์๋ฃํ์ ์ฃผ๋ก ์กฐ๊ฑด๋ฌธ(if, while ๋ฑ)์์ ์กฐ๊ฑด์ ํ๋ณํ ๋ ์ฌ์ฉ๋๋ค.
๋ ผ๋ฆฌํ ํ์ | ํ ๋น๋๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ | ๋ฐ์ดํฐ์ ํํ ๋ฒ์ |
boolean | 1 byte | true, false |
๋ค์๊ณผ ๊ฐ์ด ๋น๊ต ์ฐ์ฐ (>, <, ==, !=)๊ณผ ๋ ผ๋ฆฌ ์ฐ์ฐ(&&, ||, !)์ ๊ฒฐ๊ด๊ฐ์ด boolean ๋ณ์์ ์ ์ฅ๋ ์ ์๋ค.
[ ์์ ]
boolean result1 = (2 > 1); // true
boolean result2 = (1 == 2); // false
boolean result3 = (3 % 2 == 1); // true (3์ 2๋ก ๋๋ ๋๋จธ์ง๋ 1์ด๋ฏ๋ก ์ฐธ)
boolean result4 = ("3".equals("2")); // false (๋ฌธ์์ด ๋น๊ต)
[ ์กฐ๊ฑด๋ฌธ ์์ ]
int base = 180;
int height = 185;
if (height > base) { // ์กฐ๊ฑด์ด ์ฐธ์ด๋ฏ๋ก
System.out.println("ํค๊ฐ ํฝ๋๋ค."); // ์ถ๋ ฅ
}
๐ธ ๋ฌธ์ ์๋ฃํ
๋ฌธ์ ์๋ฃํ์ ํ ๊ฐ์ ๋ฌธ์ ๊ฐ์ ์ ์ฅํ๋ ์๋ฃํ์ด๋ฉฐ, 16๋นํธ(2๋ฐ์ดํธ)๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋์ฝ๋ ๋ฌธ์๋ฅผ ํํํ๋ค.
์ด๋, ์์ ๊ฐ์ ์ ์ฅํ ์ ์๋ค. (char ํ์
์ ๋ถํธ ์๋ ์ ์)
๋ฌธ์ํ ํ์ | ํ ๋น๋๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ | ๋ฐ์ดํฐ์ ํํ ๋ฒ์ |
char | 2 byte (16 bit) | \u0000 (0) ~ \uffff (65,535) (์ ๋์ฝ๋ ๋ฌธ์) |
์ด ์๋ฃํ์ ๋ฌธ์ ๊ฐ์ ํํํ ๋ ๋จ์ผ ์ธ์ฉ๋ถํธ(')๋ฅผ ์ฌ์ฉํด์ผ ํ๋ฉฐ, ์๋ฐ์ดํ(")๋ฅผ ์ฌ์ฉํ๋ฉด ์ค๋ฅ ๋ฐ์ํ๋ค.
char a1 = 'a';
char ํ์ ์ ๋ฌธ์, ์์คํค์ฝ๋ ๊ฐ, ์ ๋์ฝ๋ ๊ฐ์ผ๋ก ํํ ๊ฐ๋ฅํ๋ค.
์๋ ์์ ์์ 'a', 97, \u0061 ์ ๋ชจ๋ ๊ฐ์ ๋ฌธ์('a')๋ฅผ ์๋ฏธํ๋ค.
[ ์์ ]
char a1 = 'a'; // ๋ฌธ์๋ก ํํ
char a2 = 97; // ์์คํค์ฝ๋ ๊ฐ(97 = 'a')
char a3 = '\u0061'; // ์ ๋์ฝ๋ ๊ฐ(0061 = 'a')
System.out.println(a1); // a ์ถ๋ ฅ
System.out.println(a2); // a ์ถ๋ ฅ
System.out.println(a3); // a ์ถ๋ ฅ
์์คํค์ฝ๋๋ฅผ ํ์ฉํ๋ฉด ๋ฌธ์ ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค.
[ ์์ ]
char a = 'C' - 2; // 'C'์ ์์คํค์ฝ๋ ๊ฐ(67) - 2 = 65 ('A')
System.out.println(a); // A ์ถ๋ ฅ
'C'์ ์์คํค์ฝ๋ ๊ฐ์ 67์ด๋ค.
67 - 2 = 65, ์ฆ, 'A'์ ํด๋นํ๋ฏ๋ก ๊ฒฐ๊ณผ์ ์ผ๋ก 'A'๊ฐ ์ถ๋ ฅ๋๋ค.
๐ก ์์คํค์ฝ๋
์์คํค์ฝ๋๋ 1963๋
๋ฏธ๊ตญํ์คํํ(ASA, ํ์ฌ ANSI)์์ ์ ์ ํ ๋ฌธ์ ์ธ์ฝ๋ฉ ํ์ค์ผ๋ก, ์์ด ์ํ๋ฒณ, ์ซ์, ํน์ ๋ฌธ์ ๋ฑ์ ํํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
๐ ํน์ง
- 7๋นํธ(128๊ฐ ๋ฌธ์)๋ก ๊ตฌ์ฑ → 0 ~ 127
- ์๋ฌธ ๋/์๋ฌธ์, ์ซ์(0~9), ํน์ ๋ฌธ์, ์ ์ด ๋ฌธ์ ํฌํจ
- ํ์ฅ ์์คํค(8๋นํธ, 256๊ฐ ๋ฌธ์) → ์ ๋ฝ ์ธ์ด ๋ฐ ๊ทธ๋ํฝ ๋ฌธ์ ์ถ๊ฐ
๐ก ์ ๋์ฝ๋
์ ๋์ฝ๋๋ ์ ์ธ๊ณ ๋ชจ๋ ๋ฌธ์๋ฅผ ํตํฉ์ ์ผ๋ก ํํํ๊ธฐ ์ํด ๊ฐ๋ฐ๋ ๋ฌธ์ ์ธ์ฝ๋ฉ ํ์ค์ด๋ค.
๊ณผ๊ฑฐ์๋ ์์คํค์ฝ๋(ASCII)์ฒ๋ผ ๊ฐ ์ธ์ด๋ณ๋ก ๋ฌธ์ ์ธ์ฝ๋ฉ ๋ฐฉ์์ด ๋ฌ๋ผ ์๋ก ๋ค๋ฅธ ์์คํ ๊ฐ ๋ฐ์ดํฐ ๊ตํ์ด ์ด๋ ค์ ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฐ ๋ฌธ์์ ๊ณ ์ ํ ์ฝ๋ ๊ฐ์ ๋ถ์ฌํ๋ ์ ๋์ฝ๋ ์ฒด๊ณ๊ฐ ๋ฑ์ฅํ๋ค.
๐ ํน์ง
- ์ด์์ฒด์ , ํ๋ก๊ทธ๋จ, ์ธ์ด์ ๊ด๊ณ์์ด ๋์ผํ ๋ฌธ์ ์ฝ๋ ์ฌ์ฉ ๊ฐ๋ฅ
- ์ด๊ธฐ์๋ 16๋นํธ(2๋ฐ์ดํธ, 65,536์)๋ก ์ค๊ณ๋์์ผ๋, ํ์ฌ๋ ์ต๋ 1,114,112๊ฐ ๋ฌธ์ ํํ ๊ฐ๋ฅ
- 17๊ฐ์ ํ๋ฉด(Plane)์ผ๋ก ๊ตฌ์ฑ
- BMP (Basic Multilingual Plane, ๊ธฐ๋ณธ ๋ค๊ตญ์ด ํ๋ฉด, U+0000 ~ U+FFFF) → 65,536์
- ์ถ๊ฐ ํ๋ฉด(Supplementary Planes, U+010000 ~ U+10FFFF) → ํ์ฅ ๋ฌธ์ ํํ ๊ฐ๋ฅ
๐น ์ฐธ์กฐ ์๋ฃํ(Reference Data Type)
๐ธ ๋ฌธ์์ด ์๋ฃํ
๋ฌธ์๋ ํ๋์ ๊ธ์๋ก ์์๋ฐ์ดํ(')๋ก ๊ฐ์ธ๊ณ , ๋ฌธ์์ด์ ๊ธ์์ ์งํฉ์ผ๋ก ์ ๋ฐ์ดํ(")๋ก ๊ฐ์ผ๋ค๋ ์ฐจ์ด๊ฐ ์๋ค.
์๋ฐ์์๋ ์ด ๋์ ์๊ฒฉํ๊ฒ ๊ตฌ๋ถํ๋ค.
char c = 'a'; // ๋ฌธ์ (char)
String s1 = "Happy"; // ๋ฌธ์์ด (String)
String s2 = "123"; // ์ซ์๋ก ๋ณด์ด์ง๋ง ๋ฌธ์์ด
โฝ String ํด๋์ค
์๋ฐ์์๋ ๋ฌธ์์ด์ ๋ค๋ฃจ๊ธฐ ์ํด String ํด๋์ค๋ฅผ ๋ณ๋๋ก ์ ๊ณตํ๋ค.
ํ์ง๋ง ๋ด๋ถ์ ์ผ๋ก ๋ณด๋ฉด String๋ char ๋ฐฐ์ด๋ก ๊ตฌ์ฑ๋ ๋ฐ์ดํฐ ์๋ฃํ์ด๋ค.
public final class String implements java.io.Serializable, Comparable<String> {
/* The value is used for character storage */
private final char[] value; // String ๋ด๋ถ ๊ตฌ์กฐ๋ char ๋ฐฐ์ด
}
์ด๋ฌํ String ์๋ฃํ์ ์ด์ฉํด ๋ฌธ์์ด ๋ณ์๋ฅผ ์ ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด ๋ ๊ฐ์ง๊ฐ ์๋ค.
String str1 = "Happy Java"; // ๋ฆฌํฐ๋ด ๋ฐฉ์ (String Pool)
String str2 = new String("Happy Java"); // ์์ฑ์ ๋ฐฉ์ (Heap ๋ฉ๋ชจ๋ฆฌ)
[ ๋ฆฌํฐ๋ด ๋ฐฉ์ (String Pool ์ด์ฉ) ]
- "Happy Java"๊ฐ String Pool์ ์ ์ฅ๋๊ณ , ๋์ผํ ๊ฐ์ด ์์ผ๋ฉด ์ฌ์ฌ์ฉ๋จ → ๋ฉ๋ชจ๋ฆฌ ํจ์จ์
- ๋ฌธ์์ด ๋น๊ต ์ == ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ผ ๊ฐ์ฒด์ธ์ง ํ์ธ ๊ฐ๋ฅ
[ new ์์ฑ์ ๋ฐฉ์ (Heap ๋ฉ๋ชจ๋ฆฌ ํ ๋น) ]
- new String("Happy Java")๋ ๋ฌด์กฐ๊ฑด ์๋ก์ด ๊ฐ์ฒด ์์ฑ → ๋ถํ์ํ ๊ฐ์ฒด ์ฆ๊ฐ ๊ฐ๋ฅ
- ๊ฐ๊ธ์ ์ด๋ฉด ๋ฆฌํฐ๋ด ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์
โฝ String๊ณผ ์์ ์๋ฃํ(Primitive Type)์ ์ฐจ์ด
int, double, char, boolean์ ๊ธฐ๋ณธ(์์, primitive) ์๋ฃํ์ผ๋ก ๋ถ๋ฅ๋๊ณ , String์ ์ฐธ์กฐ(Reference) ์๋ฃํ์ผ๋ก ๋ถ๋ฅ๋๋ค.
์ด ๋์ ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ ๋ฐฉ์์ ์ฐจ์ด๊ฐ ์๋๋ฐ,
- ๊ธฐ๋ณธ ์๋ฃํ → Stack ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ๊ฐ ์ ์ฅ
- ์ฐธ์กฐ ์๋ฃํ → Heap ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ฒด ์ ์ฅ, Stack์๋ ์ฃผ์ ์ ์ฅ
โฝ String์ ๋ถ๋ณ์ฑ (Immutable)
String ๊ฐ์ฒด๋ ํ ๋ฒ ์์ฑ๋๋ฉด ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค.
์ฆ, ๋ฌธ์์ด์ ์์ ํ๋ฉด ๊ธฐ์กด ๊ฐ์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์๋๋ผ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
String s = "ABC";
s += "DEF"; // "ABCDEF"๋ผ๋ ์๋ก์ด ๊ฐ์ฒด ์์ฑ
์ด ๋๋ฌธ์ ๋ฌธ์์ด์ ์์ฃผ ๋ณ๊ฒฝํด์ผ ํ๋ค๋ฉด StringBuffer ๋๋ StringBuilder๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
StringBuilder sb = new StringBuilder("ABC");
sb.append("DEF"); // ๊ธฐ์กด ๊ฐ์ฒด๋ฅผ ์์ (๋ฉ๋ชจ๋ฆฌ ํจ์จ์ )
System.out.println(sb.toString()); // ABCDEF
โฝ ๋ฌธ์์ด ๋ด์ฅ ๋ฉ์๋
String ํด๋์ค์๋ ๋ฌธ์์ด์ ๋ค๋ฅผ ๋ ์ ์ฉํ ๋ค์ํ ๋ฉ์๋๊ฐ ํฌํจ๋์ด ์๋ค.
1๏ธโฃ ๋ฌธ์์ด ๋น๊ต (equals)
๋ฌธ์์ด ๊ฐ์์ง ๋น๊ตํ ๋ equals() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
String a = "hello";
String b = "java";
String c = "hello";
System.out.println(a.equals(b)); // false ์ถ๋ ฅ
System.out.println(a.equals(c)); // true ์ถ๋ ฅ
๐ == ์ฐ์ฐ์๋ ์ฐธ์กฐ(์ฃผ์)๋ฅผ ๋น๊ตํ๋ฏ๋ก ๋ฌธ์์ด ๋น๊ต ์์๋ equals()๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
2๏ธโฃ ๋ฌธ์์ด ์์ ๋น๊ต (compareTo)
์ฌ์ ์(์ํ๋ฒณ ์์) ๋น๊ต๋ฅผ ํ ๋ ์ฌ์ฉํ๋ฉฐ, ๊ฒฐ๊ณผ๋ ์์(์), 0(๊ฐ์), ์์(๋ค)๋ก ๋ฐํ๋๋ค.
System.out.println("abc".compareTo("jzis")); // -9 (abc๊ฐ ๋ ์)
System.out.println("jzis".compareTo("abc")); // 9 (abc๊ฐ ๋ ์)
System.out.println("aa".compareTo("aaa")); // -1 (aa๊ฐ ๋ ์)
๐ compareToIgnoreCase()๋ฅผ ์ฌ์ฉํ๋ฉด ๋์๋ฌธ์ ๊ตฌ๋ถ ์์ด ๋น๊ตํ ์ ์๋ค.
3๏ธโฃ ํน์ ๋ฌธ์์ด ํฌํจ ์ฌ๋ถ (contains)
String a = "Hello Java";
System.out.println(a.contains("Java")); // true ์ถ๋ ฅ
System.out.println(a.contains("Python")); // false ์ถ๋ ฅ
4๏ธโฃ ๋ฌธ์์ด์ ์์ ํ์ธ (startsWith) / ๋ ํ์ธ (endsWith)
String a = "Hello Java";
System.out.println(a.startsWith("Hello")); // true ์ถ๋ ฅ
System.out.println(a.endsWith("Java")); // true ์ถ๋ ฅ
5๏ธโฃ ๋ฌธ์์ด์์ ํน์ ๋ฌธ์์ ์์น ์ฐพ๊ธฐ (indexOf)
String a = "Hello Java";
System.out.println(a.indexOf("Java")); // 6 ์ถ๋ ฅ
System.out.println(a.indexOf("World")); // -1 ์ถ๋ ฅ (์์ผ๋ฉด -1 ๋ฐํ)
6๏ธโฃ ํน์ ์์น์ ๋ฌธ์ ๊ฐ์ ธ์ค๊ธฐ (charAt)
String a = "Hello Java";
System.out.println(a.charAt(6)); // 'J' ์ถ๋ ฅ
System.out.println(a.charAt(0)); // 'H' ์ถ๋ ฅ
๐ ๋ฐฐ์ด์ฒ๋ผ 0๋ถํฐ ์์ํ๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ค.
7๏ธโฃ ๋ฌธ์์ด ์ผ๋ถ ์ถ์ถ (substring)
String a = "Hello Java";
System.out.println(a.substring(0, 4)); // "Hell" ์ถ๋ ฅ (0 ≤ ์ธ๋ฑ์ค < 4)
System.out.println(a.substring(6)); // "Java" ์ถ๋ ฅ (6๋ถํฐ ๋๊น์ง)
8๏ธโฃ ๋ฌธ์์ด ํฉ์น๊ธฐ (concat)
String a = "Hello";
String b = "World";
System.out.println(a.concat(" ").concat(b)); // "Hello World" ์ถ๋ ฅ
๐ + ์ฐ์ฐ์๋ก๋ ๋ฌธ์์ด์ ํฉ์น ์ ์๋ค.
System.out.println(a + " " + b); // "Hello World"
9๏ธโฃ ๋ฌธ์์ด ์นํ (replace, replaceAll)
String a = "Hello Java";
System.out.println(a.replace("Java", "World")); // "Hello World" ์ถ๋ ฅ
String text = "์นดํ๋ผ๋ผ, ๋
น์ฐจ๋ผ๋ผ, ์ฝ๋๋ผ๋ผ";
System.out.println(text.replace("๋ผ๋ผ", "AA")); // "์นดํAA, ๋
น์ฐจAA, ์ฝ๋AA"
๐ ๋ฌธ์์ด ๋๋๊ธฐ (split)
String a = "a:b:c:d";
String[] arr = a.split(":"); // {"a", "b", "c", "d"}
for (String s : arr) {
System.out.println(s);
}
๐ ๋ฐฐ์ด์ ๋ค์ ํ๋์ ๋ฌธ์์ด๋ก ํฉ์น ๋๋ String.join()์ ์ฌ์ฉํ๋ค.
System.out.println(String.join(".", arr)); // "a.b.c.d"
1๏ธโฃ1๏ธโฃ ๋์๋ฌธ์ ๋ณํ (toUpperCase, toLowerCase)
String a = "Hello Java";
System.out.println(a.toUpperCase()); // "HELLO JAVA" ์ถ๋ ฅ
System.out.println(a.toLowerCase()); // "hello java" ์ถ๋ ฅ
1๏ธโฃ2๏ธโฃ ๋ฌธ์์ด ์๋ค ๊ณต๋ฐฑ ์ ๊ฑฐ (trim)
String a = " Hello Java ";
System.out.println(a.trim()); // "Hello Java" (์๋ค ๊ณต๋ฐฑ ์ ๊ฑฐ)
๐ ์ค๊ฐ์ ๊ณต๋ฐฑ์ ์ ๊ฑฐ๋์ง ์๋๋ค. ๋ชจ๋ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ๋ ค๋ฉด replaceAll("\\s", "")์ ์ฌ์ฉํ๋ค.
System.out.println(a.replaceAll("\\s", "")); // "HelloJava"
๋ฉ์๋ | ์ค๋ช |
String(String s) | ๋ฌธ์์ด s๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ก์ด String ์ธ์คํด์ค๋ฅผ ์์ฑ |
String(char[] value) | ์ฃผ์ด์ง ๋ฌธ์ ๋ฐฐ์ด value๋ฅผ ๊ธฐ๋ฐ์ผ๋ก String ์ธ์คํด์ค๋ฅผ ์์ฑ |
String(StringBuffer buf) | StringBuffer ์ธ์คํด์ค buf์ ๋์ผํ ๋ด์ฉ์ ๊ฐ๋ String ์ธ์คํด์ค๋ฅผ ์์ฑ |
char charAt(int index) | ์ง์ ํ ์์น index(0๋ถํฐ ์์)์ ๋ฌธ์๋ฅผ ๋ฐํ |
int compareTo(String anotherString) | ํ์ฌ ๋ฌธ์์ด๊ณผ anotherString์ ์ฌ์ ์์ผ๋ก ๋น๊ตํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ ๊ฐ์ผ๋ฉด 0, ํ์ฌ ๋ฌธ์์ด์ด ์์ผ๋ฉด ์์, ํฌ๋ฉด ์์๋ฅผ ๋ฐํ |
boolean endsWith(String suffix) | ํ์ฌ ๋ฌธ์์ด์ด ์ง์ ํ suffix๋ก ๋๋๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํ |
boolean equals(Object obj) | ํ์ฌ ๋ฌธ์์ด๊ณผ obj์ ๋ด์ฉ์ด ๊ฐ์์ง ๋น๊ตํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ |
boolean startsWith(String prefix) | ํ์ฌ ๋ฌธ์์ด์ด ์ง์ ํ prefix๋ก ์์ํ๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํ |
int indexOf(String str) | ํ์ฌ ๋ฌธ์์ด์์ ์ง์ ํ str์ด ์ฒ์ ๋ํ๋๋ ์์น๋ฅผ ๋ฐํ ์์ผ๋ฉด -1์ ๋ฐํ |
int lastIndexOf(String str) | ํ์ฌ ๋ฌธ์์ด์์ ์ง์ ํ str์ด ๋ง์ง๋ง์ผ๋ก ๋ํ๋๋ ์์น๋ฅผ ๋ฐํ ์์ผ๋ฉด -1์ ๋ฐํ |
int length() | ํ์ฌ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๋ฐํ |
String replace(char oldChar, char newChar) |
ํ์ฌ ๋ฌธ์์ด์์ oldChar๋ฅผ ์ฐพ์ newChar๋ก ๋ณ๊ฒฝํ ์๋ก์ด ๋ฌธ์์ด์ ๋ฐํ |
String toLowerCase() | ํ์ฌ ๋ฌธ์์ด์ ๋ชจ๋ ๋ฌธ์๋ฅผ ์๋ฌธ์๋ก ๋ณํํ ์๋ก์ด ๋ฌธ์์ด์ ๋ฐํ |
String toUpperCase() | ํ์ฌ ๋ฌธ์์ด์ ๋ชจ๋ ๋ฌธ์๋ฅผ ๋๋ฌธ์๋ก ๋ณํํ ์๋ก์ด ๋ฌธ์์ด์ ๋ฐํ |
String substring(int beginIndex) | ํ์ฌ ๋ฌธ์์ด์์ beginIndex๋ถํฐ ๋๊น์ง์ ๋ฌธ์์ด์ ๋ฐํ |
String substring(int beginIndex, int endIndex) |
ํ์ฌ ๋ฌธ์์ด์์ beginIndex๋ถํฐ endIndex ์ ๊น์ง(ํฌํจ X) ๋ถ๋ถ ๋ฌธ์์ด์ ๋ฐํ |
String[] split(String regex) | ํ์ฌ ๋ฌธ์์ด์ ์ง์ ํ ์ ๊ท ํํ์ regex๋ฅผ ๊ธฐ์ค์ผ๋ก ๋๋์ด ๋ฌธ์์ด ๋ฐฐ์ด๋ก ๋ฐํ |
String[] split(String regex, int limit) | ํ์ฌ ๋ฌธ์์ด์ ์ ๊ท ํํ์ regex๋ฅผ ๊ธฐ์ค์ผ๋ก ์ต๋ limit ๊ฐ์๋งํผ ๋ถํ ํ์ฌ ๋ฌธ์์ด ๋ฐฐ์ด๋ก ๋ฐํ ๋ง์ง๋ง ์์๋ ๋จ์ ๋ฌธ์์ด์ ํฌํจ |
String trim() | ํ์ฌ ๋ฌธ์์ด์ ์ ๋์ ์๋ ๊ณต๋ฐฑ ๋ฌธ์๋ฅผ ์ ๊ฑฐํ ์๋ก์ด ๋ฌธ์์ด์ ๋ฐํ |
byte[] getBytes() | ํ์ฌ ๋ฌธ์์ด์ ๋ฐ์ดํธ ๋ฐฐ์ด๋ก ๋ณํํ์ฌ ๋ฐํ (getBytes(Charset charset)์ ์ฌ์ฉํ๋ฉด ์ธ์ฝ๋ฉ์ ์ง์ ํ ์ ์์ |
boolean contains(CharSequence s) | ํ์ฌ ๋ฌธ์์ด์ด ์ฃผ์ด์ง s๋ฅผ ํฌํจํ๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํ |
String join(CharSequence delimiter, CharSequence... elements) |
์ฌ๋ฌ ๊ฐ์ ๋ฌธ์์ด์ delimiter(๊ตฌ๋ถ์)๋ก ์ด์ด ๋ถ์ฌ ํ๋์ ๋ฌธ์์ด๋ก ๋ฐํ |
boolean isEmpty() | ํ์ฌ ๋ฌธ์์ด์ด ๋น์ด์๋์ง(๊ธธ์ด๊ฐ 0์ธ์ง) ํ์ธํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ |
int codePointAt(int index) | ์ง์ ํ ์์น index์ ๋ฌธ์์ ์ ๋์ฝ๋ ์ฝ๋ ํฌ์ธํธ๋ฅผ ๋ฐํ |
๐ reference
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] static ๋ณ์, static ๋ฉ์๋ (0) | 2025.02.23 |
---|---|
[Java] Arrays.sort(), Collections.sort() (0) | 2025.02.14 |
[Java] ์ ๊ท ํํ์(Regular Expression, Regex) (0) | 2025.01.30 |
[Java] ์์ธ(Exception), ์์ธ ์ฒ๋ฆฌ(Exception Handling) (0) | 2025.01.20 |
[Java] ๊น์ ๋ณต์ฌ(Deep Copy) vs ์์ ๋ณต์ฌ(Shallow Copy) (1) | 2025.01.15 |