๐Ÿ’โ€โ™€๏ธ API(Application Programming Interface)์ด๋ž€,
์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์šด์˜์ฒด์ œ๋‚˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“  ์ธํ„ฐํŽ˜์ด์Šค


๐Ÿ‘€ Object

โ—ผ Book Class

public class Book {
	
	private int number;
	private String title;
	private String author;
	private int price;
	
	public Book() {}

	public Book(int number, String title, String author, int price) {
		super();
		this.number = number;
		this.title = title;
		this.author = author;
		this.price = price;
	}

	public int getNumber() {
		return number;
	}
	public void setNumber(int number) {
		this.number = number;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
	public int getPrice() {
		return price;
	}
	public void setPrice(int price) {
		this.price = price;
	}

	@Override >>> Object์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ
	public String toString() {
		return "Book [number=" + number + ", title=" + title + ", author=" + author + ", price=" + price + "]";
	}

	@Override
	public int hashCode() {
		return Objects.hash(author, number, price, title);
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Book other = (Book) obj;
		return Objects.equals(author, other.author) && number == other.number && price == other.price
				&& Objects.equals(title, other.title);
	}
}

โ—ผ Application1 Class

public class Application1 {

	public static void main(String[] args) {
		
		Book book1 = new Book(1, "ํ™๊ธธ๋™์ „", "ํ—ˆ๊ท ", 50000);
		Book book2 = new Book(2, "๋ชฉ๋ฏผ์‹ฌ์„œ", "์ •์•ฝ์šฉ", 30000);
		Book book3 = new Book(3, "์นญ์ฐฌ์€ ๊ณ ๋ž˜๋ฅผ ์ถค์ถ”๊ฒŒ ํ•œ๋‹ค", "๊ณ ๋ž˜", 40000);
		
		>>> java.lang.Object ํด๋ž˜์Šค์˜ toString ๋ฉ”์†Œ๋“œ๋Š”
		>>> ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์‚ฌ์šฉํ•œ full class name๊ณผ @ ๊ทธ๋ฆฌ๊ณ  16์ง„์ˆ˜ ํ•ด์‰ฌ์ฝ”๋“œ๊ฐ€ '๋ฌธ์ž์—ด'๋กœ ๋ฐ˜ํ™˜๋จ
		>>> 16์ง„์ˆ˜ ํ•ด์‰ฌ์ฝ”๋“œ๋Š” ์ธ์Šคํ„ด์Šค์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’์œผ๋กœ ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค ๋ชจ๋‘ ๋‹ค๋ฆ„
        
		System.out.println("book1.toString() : " + book1.toString());
		System.out.println("book2.toString() : " + book2.toString());
		System.out.println("book3.toString() : " + book3.toString());
		
		>>> ๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜๋งŒ ์ถœ๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ๋„ toString() ํ˜ธ์ถœ๊ณผ '๋™์ผํ•œ ๊ฒฐ๊ณผ' ์ถœ๋ ฅ 
		>>> ์ด ๋ง์€ ์ž๋™์œผ๋กœ toString() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค๋Š” ๋œป
		>>> ์ด๋Ÿฌํ•œ ์ ์„ ์ด์šฉํ•ด์„œ toString() ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•ด์„œ ์‚ฌ์šฉํ•จ
        
		System.out.println("book1 : " + book1);
		System.out.println("book2 : " + book2);
		System.out.println("book3 : " + book3);
	}
}

โ—ผ Application2 Class

๐Ÿ™‹โ€ ์ž ๊น ! ๋™์ผ ๊ฐ์ฒด์™€ ๋™๋“ฑ ๊ฐ์ฒด๊ฐ€ ๋ญ”๊ฐ€์š”?

  • ๋™์ผ ๊ฐ์ฒด : ์ฃผ์†Œ๊ฐ€ ๋™์ผํ•œ ์ธ์Šคํ„ด์Šค
  • ๋™๋“ฑ ๊ฐ์ฒด : ์ฃผ์†Œ๋Š” ๋‹ค๋ฅด๋”๋ผ๋„ ํ•„๋“œ ๊ฐ’์ด ๋™์ผํ•œ ๊ฐ์ฒด
public class Application2 {

	public static void main(String[] args) {
		
		>>> java.lang.Object์˜ equals๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›์€ ์ธ์Šคํ„ด์Šค์™€ == ์—ฐ์‚ฐํ•˜์—ฌ true or false๋ฅผ ๋ฐ˜ํ™˜
		>>> ์ฆ‰, ๋™์ผํ•œ ์ธ์Šคํ„ด์Šค์ธ์ง€ ๋น„๊ตํ•˜๋Š” ๊ธฐ๋Šฅ
		
		>>> ๊ฒฝ์šฐ์— ๋”ฐ๋ผ์„œ๋Š” ๋™๋“ฑ ๊ฐ์ฒด๋ฅผ ํŒ๋‹จํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ๋Š”๋ฐ,
		>>> ๊ทธ๋•Œ equals๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์—ฌ ๊ฐ๊ฐ์˜ ํ•„๋“œ๊ฐ€ ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋Š”์ง€ ํ™•์ธํ•˜๊ณ  
        >>> ๋ชจ๋“  ํ•„๋“œ ๊ฐ’์ด ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๊ฒฝ์šฐ true, ์•„๋‹Œ ๊ฒฝ์šฐ false๋ฅผ ๋ฐ˜ํ™˜
        
		// ํ•„๋“œ ๊ฐ’์ด ๋™์ผํ•œ ๊ฐ์ฒด ์ƒ์„ฑ
		Book book1 = new Book(1, "ํ™๊ธธ๋™์ „", "ํ—ˆ๊ท ", 50000);
		Book book2 = new Book(1, "ํ™๊ธธ๋™์ „", "ํ—ˆ๊ท ", 50000);
		
		System.out.println("๋‘ ์ธ์Šคํ„ด์Šค์˜ == ์—ฐ์‚ฐ ๋น„๊ต : " + (book1 == book2));
        							>>> ์ฃผ์†Œ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์—ฐํžˆ False
		System.out.println("๋‘ ์ธ์Šคํ„ด์Šค์˜ eqauls() ๋น„๊ต : " + (book1.equals(book2)));
        							>>> Bookํด๋ž˜์Šค์— equals๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด, false ์ถœ๋ ฅ
                                    >>> Bookํด๋ž˜์Šค์— equals๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ›„, true ์ถœ๋ ฅ (๋™๋“ฑ ๊ฐ์ฒด ํ™•์ธ)
    }
}

โ—ผ Application3 Class

๐Ÿ“Œ Ref.

* Object ํด๋ž˜์Šค์˜ ๋ช…์„ธ์— ์ž‘์„ฑ๋œ ์ผ๋ฐ˜ ๊ทœ์•ฝ์— ๋”ฐ๋ฅด๋ฉด 'equals ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒฝ์šฐ', 
  ๋ฐ˜๋“œ์‹œ 'hashCode ๋ฉ”์†Œ๋“œ๋„ ์žฌ์ •์˜(์˜ค๋ฒ„๋ผ์ด๋”ฉ)' ํ•ด์•ผํ•จ.
  ๋งŒ์•ฝ hashCode๋ฅผ ์žฌ์ •์˜ํ•˜์ง€์•Š์œผ๋ฉด ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋™๋“ฑ ๊ฐ์ฒด๋Š” ๊ฐ™์€ ํ•ด์‰ฌ์ฝ”๋“œ ๊ฐ’์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค๋Š” 
  ๊ทœ์•ฝ์— ์œ„๋ฐ˜ (๊ฐ•์ œ์„ฑ๊นŒ์ง€๋Š” ์—†์œผ๋‚˜ ๊ทœ์•ฝ๋Œ€๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ)
public class Application3 {

	public static void main(String[] args) {
		
		>>> equals์™€ hashCode๋Š” ํŽ˜์–ด๋กœ ๋ณด๊ณ  ๋™๋“ฑ๊ฐ์ฒด ํŒ๋‹จ์„ ์œ„ํ•ด ์˜ค๋ฒ„๋ผ์ด๋”ฉ (ํ•„๋“œ ๊ฐ’ ๋™์ผ)

		Book book1 = new Book(1, "ํ™๊ธธ๋™์ „", "ํ—ˆ๊ท ", 50000);
		Book book2 = new Book(1, "ํ™๊ธธ๋™์ „", "ํ—ˆ๊ท ", 50000);
		
		System.out.println("book1์˜ hashcode : " + book1.hashCode());
		System.out.println("book2์˜ hashcode : " + book2.hashCode()); >> ์„œ๋กœ ๋‹ค๋ฅธ ์ฃผ์†Œ๊ฐ’
       
        >>> ํ•„๋“œ๊ฐ’์€ ๋™์ผํ•˜์ง€๋งŒ ์ฃผ์†Œ๊ฐ’์€ ๋‹ค๋ฅธ '๋™๋“ฑ ๊ฐ์ฒด'
        >>> Bookํด๋ž˜์Šค์— hashCode๋ฉ”์†Œ๋“œ๋„ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•˜๋ฉด '์ฃผ์†Œ๊ฐ’ ๋˜ํ•œ ํ†ต์ผ'๋จ
	}
}

๐Ÿ™‹โ€ ์ž ๊น ! String๊ณผ StringBuilder์˜ ์ฐจ์ด์ ๋ถ€ํ„ฐ ์•Œ์•„๋ด…์‹œ๋‹ค!

  • String ๐Ÿ‘‰ ๋ถˆ๋ณ€
    : ๋ฌธ์ž์—ด์— + ์—ฐ์‚ฐ์œผ๋กœ ํ•ฉ์น˜๊ธฐ ํ•˜๋Š” ๊ฒฝ์šฐ, ๊ธฐ์กด ์ธ์Šคํ„ด์Šค๋ฅผ ์ˆ˜์ •ํ•˜์ง€์•Š๊ณ  ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜
    • ๋ฌธ์ž์—ด ๋ณ€๊ฒฝ์ด ์ž์ฃผ ์ผ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ ์„ฑ๋Šฅ ๋ฉด์—์„œ ์ข‹์ง€ ์•Š์Œ
    • ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ž์—ด์„ ์ž์ฃผ ์ฝ์–ด ๋“ค์ด๋Š” ๊ฒฝ์šฐ ์ข‹์€ ์„ฑ๋Šฅ์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์Œ
  • StringBuilder ๐Ÿ‘‰ ๊ฐ€๋ณ€
    : ๋ฌธ์ž์—ด์— append() ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•ฉ์น˜๊ธฐ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ์กด ์ธ์Šคํ„ด์Šค๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์Œ
    • ์žฆ์€ ๋ฌธ์ž์—ด ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ String ๋ณด๋‹ค ์„ฑ๋Šฅ์ด ์ข‹์Œ

๐Ÿ‘€ String (๋ถˆ๋ณ€)

๐Ÿ‘‰ String ํด๋ž˜์Šค์˜ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์†Œ๋“œ

1) charAt()

charAt() : ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ํŠน์ • ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž๋ฅผ ๋ฐ˜ํ™˜
์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ˆซ์ž ์ฒด๊ณ„๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์ธ๋ฑ์Šค๋ฅผ ๋ฒ—์–ด๋‚œ ์ •์ˆ˜๋ฅผ ์ธ์ž๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” IndexOutOfBoundsException์ด ๋ฐœ์ƒ

String str1 = "apple";
		
for(int i = 0; i < str1.length(); i++) {
	System.out.println("charAt(" + i + ") : " + str1.charAt(i));
}

2) compareTo()

compareTo() : ์ธ์ž๋กœ ์ „๋‹ฌ๋œ ๋ฌธ์ž์—ด๊ณผ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ๋น„๊ต๋ฅผ ํ•˜์—ฌ ๋‘ ๋ฌธ์ž์—ด์ด ๊ฐ™๋‹ค๋ฉด 0์„ ๋ฐ˜ํ™˜, ์ธ์ž๋กœ ์ „๋‹ฌ๋œ ๋ฌธ์ž์—ด๋ณด๋‹ค ์ž‘์œผ๋ฉด ์Œ์ˆ˜๋ฅผ, ํฌ๋ฉด ์–‘์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
(๋‹จ, ์ด ๋ฉ”์†Œ๋“œ๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋น„๊ต)

String str2 = "java";
String str3 = "java";
String str4 = "JAVA";
String str5 = "oracle";
		
>>> ๊ฐ™์œผ๋ฉด 0์„ ๋ฐ˜ํ™˜
System.out.println("compareTo() : " + (str2.compareTo(str3)));
		
>>> ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๋Š” 32๋งŒํผ ์ฐจ์ด๊ฐ€ ๋‚จ
System.out.println("compareTo() : " + (str2.compareTo(str4)));
System.out.println("compareTo() : " + (str4.compareTo(str2)));
		
>>> jklmno j๋ถ€ํ„ฐ o๊นŒ์ง€ 5๋งŒํผ ์ฐจ์ด๊ฐ€ ๋‚จ
System.out.println("compareTo() : " + (str2.compareTo(str5))); // -5 ์ถœ๋ ฅ
System.out.println("compareTo() : " + (str5.compareTo(str2))); // 5 ์ถœ๋ ฅ
		
>>> ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ค ๊ฐ’์ด ๋‚˜์˜ค๋Š”์ง€๋ณด๋‹ค ์–‘์ˆ˜์ธ์ง€ ์Œ์ˆ˜์ธ์ง€๋ฅผ ํŒ๋‹จํ•  ๋ชฉ์ ์œผ๋กœ ์ฃผ๋กœ ์‚ฌ์šฉ
>>> ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ๋น„๊ต (compareToIgnoreCase())
System.out.println("compareToIgnoreCase() : " + str3.compareToIgnoreCase(str4));

3) concat()

concat() : ๋ฌธ์ž์—ด์— ์ธ์ž๋กœ ์ „๋‹ฌ ๋œ ๋ฌธ์ž์—ด์„ ํ•ฉ์น˜๊ธฐํ•ด์„œ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ (์›๋ณธ ๋ฌธ์ž์—ด์— ์˜ํ–ฅ X)

System.out.println("concat() : " + (str2.concat(str5)));	// javaoracle
System.out.println("str2 : " + str2);						// java

4) indexOf()

indexOf() : ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ๋ฌธ์ž๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ ์ฒ˜์Œ ์ผ์น˜ํ•˜๋Š” ์ธ๋ฑ์Šค ์œ„์น˜๋ฅผ ์ •์ˆ˜ํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ (๋‹จ, ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ž๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ -1์„ ๋ฐ˜ํ™˜)

String indexOf = "java oracle";
System.out.println("indexOf('a') : " + indexOf.indexOf('a')); // 1
System.out.println("indexOf('z') : " + indexOf.indexOf('z')); // -1

5) lastIndexOf()

lastIndexOf() : ๋ฌธ์ž์—ด ํƒ์ƒ‰์„ ๋’ค์—์„œ๋ถ€ํ„ฐ ํ•˜๊ณ  ์ฒ˜์Œ ์ผ์น˜ํ•˜๋Š” ์œ„์น˜์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ (๋‹จ, ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ž๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ -1์„ ๋ฐ˜ํ™˜)

System.out.println("lastIndexOf('a') : " + indexOf.lastIndexOf('a')); // 7
System.out.println("lastIndexOf('z') : " + indexOf.lastIndexOf('z')); // -1

6) trim()

trim() : ๋ฌธ์ž์—ด ์•ž ๋’ค์— ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•œ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ (์›๋ณธ ๋ฌธ์ž์—ด์— ์˜ํ–ฅ X)

String trimStr = "   java   ";
		
System.out.println("trimStr : #" + trimStr + "#");			// #   java   #
System.out.println("trim() : #" + trimStr.trim() + "#"); 	// #java#
System.out.println("trimStr : #" + trimStr + "#");			// #   java   #

7) toLowerCase() & toUpperCase()

toLowerCase() : ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜
toUpperCase() : ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜
(์›๋ณธ ๋ฌธ์ž์—ด์— ์˜ํ–ฅ X)

String caseStr = "JavaOracle";
System.out.println("toLowerCase() : " + caseStr.toLowerCase()); // javaoracle
System.out.println("toUpperCase() : " + caseStr.toUpperCase()); // JAVAORACLE
System.out.println("caseStr : " + caseStr);						// JavaOracle

8) substring()

substring() : ๋ฌธ์ž์—ด์˜ ์ผ๋ถ€๋ฅผ ์ž˜๋ผ๋‚ด์–ด ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ (์›๋ณธ ๋ฌธ์ž์—ด์— ์˜ํ–ฅ X)

String javaoracle = "javaoracle";
		
System.out.println("substring(3, 6) : " + javaoracle.substring(3, 6));	// aor >>> 3,4,5 ๋ฒˆ์งธ ๋ฌธ์ž์—ด๋งŒ ๋ฐ˜ํ™˜
System.out.println("substring(3) : " + javaoracle.substring(3));		// aoracle
System.out.println("javaoracle : " + javaoracle);						// javaoracle

9) replace()

replace() : ๋ฌธ์ž์—ด์—์„œ ๋Œ€์ฒดํ•  ๋ฌธ์ž์—ด๋กœ ๊ธฐ์กด ๋ฌธ์ž์—ด์„ ๋ณ€๊ฒฝํ•ด์„œ ๋ฐ˜ํ™˜ (์›๋ณธ ๋ฌธ์ž์—ด์— ์˜ํ–ฅ X)

System.out.println("replace() : " + javaoracle.replace("java", "python"));	// pythonoracle
System.out.println("javaoracle : " + javaoracle);							// javaoracle

10) length()

length() : ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ์ •์ˆ˜ํ˜•์œผ๋กœ ๋ฐ˜ํ™˜

System.out.println("length() : " + javaoracle.length());	// 10
System.out.println("๋นˆ ๋ฌธ์ž์—ด ๊ธธ์ด : " + ("".length()));		// 0

11) isEmpty()

isEmpty() : ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 0์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜, ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ (๊ธธ์ด๊ฐ€ 0์ธ ๋ฌธ์ž์—ด์€ null๊ณผ๋Š” ๋‹ค๋ฆ„)

System.out.println("isEmpty() : " + "".isEmpty());		// true
System.out.println("isEmpty() : " + "abc".isEmpty());	// false
		
String str = "";
		
System.out.println(str == null);	// false
System.out.println(str.isEmpty());	// true
>>> ๋นˆ ๋ฌธ์ž์—ด์€ null์ด ์•„๋‹˜

๐Ÿ‘‰ ๋ฌธ์ž์—ด ๊ฐ์ฒด ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

[1] "" ๋ฆฌํ„ฐ๋Ÿด ํ˜•ํƒœ & new String("๋ฌธ์ž์—ด")

"" ๋ฆฌํ„ฐ๋Ÿด ํ˜•ํƒœ : ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹จ์ผ ์ธ์Šคํ„ด์Šค๋กœ ๊ด€๋ฆฌ
new String("๋ฌธ์ž์—ด") : ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑ

String str1 = "java";
String str2 = "java";
String str3 = new String("java");
String str4 = new String("java");
		
System.out.println(str1 == str2); // true
System.out.println(str2 == str3); // false
System.out.println(str3 == str4); // false
		
>>> 1, 2์˜ ์ฃผ์†Œ๊ฐ’์€ ๊ฐ™๊ณ  3, 4์˜ ์ฃผ์†Œ๊ฐ’์€ ๋‹ค๋ฅด์ง€๋งŒ ๋ชจ๋‘ ๋™์ผํ•œ hashCode ๊ฐ’ ์ถœ๋ ฅ
>>> ๋™์ผํ•œ ๋ฌธ์ž์—ด์€ ๋™์ผํ•œ hashCode ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก String ํด๋ž˜์Šค์— ์žฌ์ •์˜ ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ
System.out.println("str1 hashCode : " + str1.hashCode());
System.out.println("str2 hashCode : " + str2.hashCode());
System.out.println("str3 hashCode : " + str3.hashCode());
System.out.println("str4 hashCode : " + str4.hashCode());
>>> string ํด๋ž˜์Šค์—๋„ ํ•„๋“œ๊ฐ’์ด ๊ฐ™์œผ๋ฉด ๊ฐ™์€ ์ฃผ์†Œ๊ฐ’์ด ๋ฐ˜ํ™˜๋˜๋„๋ก hashCode ๋ฉ”์†Œ๋“œ๊ฐ€ 
>>> ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋‘ ๊ฐ™์€ ์ฃผ์†Œ๊ฐ’ ์ถœ๋ ฅ

[2] ๋ฌธ์ž์—ด์€ "๋ถˆ๋ณ€"

>>> ๋ฌธ์ž์—ด์€ "๋ถˆ๋ณ€"์ด๋ผ๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด
>>> ๊ธฐ์กด ๋ฌธ์ž์—ด์— + ์—ฐ์‚ฐ์ž๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ๋ฌธ์ž์—ด์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ '์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ํ• ๋‹น'

str2 += "oracle";

>>> str1, str2๋Š” ๋™์ผ ์ธ์Šคํ„ด์Šค์˜€์ง€๋งŒ ์ˆ˜์ • ํ›„์—๋Š” ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋œ ๊ฒƒ์„ ํ™•์ธ
System.out.println("str1 == str2 : " + (str1 == str2)); // false 
														>>> str2์˜ ์ฃผ์†Œ๊ฐ’์ด ๋‹ฌ๋ผ์ง

[3] ๊ฐ๊ฐ ์ฃผ์†Œ๊ฐ’์ด ๋‹ค๋ฅธ ๋ฌธ์ž์—ด์„ equals๋กœ ๋น„๊ต

>>> str1, str3, str4 ๊ฐ๊ฐ ์ฃผ์†Œ๊ฐ’ ๋‹ค ๋‹ค๋ฆ„. 
>>> ํ•˜์ง€๋งŒ, ์ธ์Šคํ„ด์Šค์˜ ๋น„๊ต๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฌธ์ž์—ด ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋ฉด true, 
>>> ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์ง€๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋‘ true ์ถœ๋ ฅ

		System.out.println("str1.equals(str3) : " + str1.equals(str3)); // true
		System.out.println("str3.equals(str4) : " + str3.equals(str4)); // true
	}
}

๐Ÿ‘‰ split()๊ณผ StringTokenizer

[1] split()์˜ ํ™œ์šฉ

// ๊ฐ ๋ฌธ์ž์—ด์˜ ์˜๋ฏธ๋Š” ์‚ฌ๋ฒˆ/์ด๋ฆ„/์ฃผ์†Œ/๋ถ€์„œ ๋ฅผ ์˜๋ฏธ
String emp1 = "100/ํ™๊ธธ๋™/์„œ์šธ/์˜์—…๋ถ€";		// ๋ชจ๋“  ๊ฐ’ ์กด์žฌ
String emp2 = "200/์œ ๊ด€์ˆœ//์ด๋ฌด๋ถ€";			// ์ฃผ์†Œ ์—†์Œ
String emp3 = "300/์ด์ˆœ์‹ /๊ฒฝ๊ธฐ๋„/";			// ๋ถ€์„œ ์—†์Œ
		
// split()์„ ์ด์šฉํ•ด์„œ 3๋ช…์˜ ๋ฌธ์ž์—ด์„ ์ •๋ณด๋ณ„๋กœ ๋ถ„๋ฆฌ
String[] empArr1 = emp1.split("/"); 
String[] empArr2 = emp2.split("/");
String[] empArr3 = emp3.split("/");

for(int i = 0; i < empArr1.length; i++) {
	System.out.println("empArr1[" + i + "] : " + empArr1[i]);	// ์ •์ƒ ์ถœ๋ ฅ
}
		
for(int i = 0; i < empArr2.length; i++) {
	System.out.println("empArr2[" + i + "] : " + empArr2[i]);	// empArr2[2] : ๊ณต๋ฐฑ
}
		
for(int i = 0; i < empArr3.length; i++) {
	System.out.println("empArr3[" + i + "] : " + empArr3[i]);	// empArr3[3] ์ž์ฒด๊ฐ€ ์ถœ๋ ฅ X
}

[2] ๋งˆ์ง€๋ง‰ ๊ตฌ๋ถ„์ž ์‚ฌ์ด์— ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, ์ดํ›„ ๊ฐ’๋„ ์ถ”์ถœํ•˜๊ณ  ์‹ถ์„ ๋•Œ

>>> ๋งˆ์ง€๋ง‰ ๊ตฌ๋ถ„์ž ์‚ฌ์ด์— ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, ์ดํ›„ ๊ฐ’๋„ ์ถ”์ถœํ•˜๊ณ  ์‹ถ์„ ๋•Œ
>>> ๋ช‡ ๊ฐœ์˜ ํ† ํฐ์œผ๋กœ ๋ถ„๋ฆฌํ•  ๊ฒƒ์ธ์ง€ ํ•œ๊ณ„์น˜๋ฅผ ๋‘๋ฒˆ์งธ ์ธ์ž๋กœ ๋„ฃ์–ด์ค„ ์ˆ˜ ์žˆ์Œ
>>> ์ด ๋•Œ, ์Œ์ˆ˜๋ฅผ ๋„ฃ๊ฒŒ ๋˜๋ฉด ๋งˆ์ง€๋ง‰ ๊ตฌ๋ถ„์ž ๋’ค์˜ ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋นˆ ๋ฌธ์ž์—ด๋กœ ํ† ํฐ์„ ์ƒ์„ฑ

String[] empArr4 = emp3.split("/", -1); 
		
for(int i = 0; i < empArr4.length; i++) {
	System.out.println("empArr4[" + i + "] : " + empArr4[i]);		
}											// ์œ„์™€ ๋‹ฌ๋ฆฌ empArr4[3] : ๊ฐ€ ๊ณต๋ฐฑ์œผ๋กœ ์ถœ๋ ฅ์ด ๋จ

[3] ๋ฐ˜๋ฉด StringTokenizer์˜ ๊ฒฝ์šฐ ๊ณต๋ฐฑ์œผ๋กœ ์กด์žฌํ•˜๋Š” ๊ฐ’์„ ๋ฌด์‹œ

StringTokenizer st1 = new StringTokenizer(emp1, "/");
StringTokenizer st2 = new StringTokenizer(emp2, "/");
StringTokenizer st3 = new StringTokenizer(emp3, "/");
		
while(st1.hasMoreTokens()) {	>>> : ์–˜ ํ† ํฐ์„ ๋” ๊ฐ€์ง€๊ณ  ์žˆ๋‹ˆ? true์ผ ๊ฒฝ์šฐ while๋ฌธ ์ง„ํ–‰
	System.out.println("st1 : " + st1.nextToken());
}
		
while(st2.hasMoreTokens()) {
	System.out.println("st2 : " + st2.nextToken());
}
		
while(st3.hasMoreTokens()) {
	System.out.println("st3 : " + st3.nextToken());
}
		
>>> nextToken()์œผ๋กœ ํ† ํฐ์„ ๊บผ๋‚ด๋ฉด ํ•ด๋‹น StringTokenizer์˜ ํ† ํฐ์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅ
while(st1.hasMoreTokens()) {
	System.out.println("st1 : " + st1.nextToken());
}

[4] split์€ ์ •๊ทœํ‘œํ˜„์‹ ์ด์šฉ(๋ฌธ์ž์—ด ํŒจํ„ด), StringTokenizer๋Š” ๊ตฌ๋ถ„์ž ๋ฌธ์ž์—ด ์ด์šฉ

String colorStr = "red*orange#blue/yellow green"; >>> *, #, , /๋กœ ๋‹จ์–ด ๊ตฌ๋ถ„
		
>>> "*#/ " ์ด๋ผ๋Š” ๋ฌธ์ž์—ด์ด ๊ตฌ๋ถ„์ž๋กœ ์กด์žฌํ•˜์ง€ ์•Š์•„์„œ ์—๋Ÿฌ ๋ฐœ์ƒ
//String[] colors = colorStr.split("*#/ ");
		
>>> ๋Œ€๊ด„ํ˜ธ๋กœ ๋ฌถ์€ ๋ฌธ์ž์—ด์€ ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ๊ฐ ๋ฌธ์ž๋“ค์˜ ํŒจํ„ด์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Œ
>>> ๋”ฐ๋ผ์„œ '์ˆœ์„œ ์ƒ๊ด€ ์—†์ด' ์กด์žฌํ•˜๋Š” ๋ฌธ์ž๋“ค์„ ์ด์šฉํ•ด์„œ ๊ตฌ๋ถ„์ž๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
String[] colors = colorStr.split("[/*# ]");		>>> ๋Œ€๊ด„ํ˜ธ๋กœ ๋ฌถ์–ด์•ผํ•จ
		
for(int i = 0; i < colors.length; i++) {
	System.out.println("colors[" + i + "] : " + colors[i]);	
}
		
>>> StringTokenizer์˜ ๋‘๋ฒˆ์งธ ์ธ์ž ๋ฌธ์ž์—ด ์ž์ฒด๋Š” ์—ฐ์† ๋œ ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ๊ตฌ๋ถ„์ž๋กœ ์ด์šฉํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ
StringTokenizer colorStringTokenizer = new StringTokenizer(colorStr, "*#/ ");
		
while(colorStringTokenizer.hasMoreTokens()) {
	System.out.println(colorStringTokenizer.nextToken());
}

๐Ÿ‘‰ ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž

[1] ๊ฐœํ–‰ ๋ฌธ์ž

\n

System.out.println("์•ˆ๋…•ํ•˜์„ธ์š”.\n์ €๋Š” ํšจ์—ฐ์ž…๋‹ˆ๋‹ค.");

[2] ํƒญ ๋ฌธ์ž

\t

System.out.println("์•ˆ๋…•\tํ•˜์„ธ์š”. ์ €๋Š” ์ˆ˜๋ฏผ์ž…๋‹ˆ๋‹ค.");

[3] ํ™‘๋”ฐ์˜ดํ‘œ ๋ฌธ์ž

' ' \'

System.out.println("์•ˆ๋…•ํ•˜์„ธ์š” ์ €๋Š” 'ํšจ์—ฐ'์ž…๋‹ˆ๋‹ค.");

//System.out.println(''');	>>> ํ™‘๋”ฐ์˜ดํ‘œ ๋ฌธ์ž์™€ ๋ฌธ์ž ๋ฆฌํ„ฐ๋Ÿด ๊ธฐํ˜ธ๊ฐ€ ์ค‘๋ณต๋˜์–ด ์ถœ๋ ฅ X
System.out.println('\'');	>>> ' ์ •์ƒ ์ถœ๋ ฅ. ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ตฌ๋ถ„ํ•ด์คŒ

[4] ์Œ๋”ฐ์˜ดํ‘œ ๋ฌธ์ž

\"

//System.out.println("์•ˆ๋…•ํ•˜์„ธ์š” ์ €๋Š” "์น˜์ฆˆ"์ž…๋‹ˆ๋‹ค.");
System.out.println("์•ˆ๋…•ํ•˜์„ธ์š” ์ €๋Š” \"์น˜์ฆˆ\"์ž…๋‹ˆ๋‹ค.");

[5] ์—ญ์Šฌ๋ž˜์‹œ ๋ฌธ์ž

\\

//System.out.println("์•ˆ๋…•ํ•˜์„ธ์š” ์ €๋Š” \์ˆ˜๋ฏผ\์ž…๋‹ˆ๋‹ค."); 
					>>> ์—ญ์Šฌ๋ž˜์‹œ๋ฅผ ๋ฌธ์ž์—ด์— ํ‘œํ˜„ํ•˜๊ณ ์‹ถ์ง€๋งŒ ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž์™€ ๊ฒน์นจ
System.out.println("์•ˆ๋…•ํ•˜์„ธ์š” ์ €๋Š” \\์ˆ˜๋ฏผ\\์ž…๋‹ˆ๋‹ค."); 

๐Ÿ‘€ StringBuilder (๊ฐ€๋ณ€)

๐Ÿ‘‰ StringBuilder์˜ ํŠน์ง•

StringBuilder sb = new StringBuilder("java");

[1] toString์ด ์ด๋ฏธ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋˜์–ด์žˆ์–ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅ

System.out.println("sb : " + sb); 	>>> ์ฃผ์†Œ๊ฐ’์ด ์•„๋‹Œ ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜
									>>> StringBuilder๋„ toString์ด ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋˜์–ด์žˆ์Œ

[2] hashCode๋Š” ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋˜์–ด์žˆ์ง€ ์•Š์Œ

์ฆ‰, ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๊ฒฝ์šฐ ๊ฐ™์€ ํ•ด์‰ฌ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€์•Š๊ณ , ์ธ์Šคํ„ด์Šค๊ฐ€ ๋™์ผํ•ด์•ผ ๊ฐ™์€ ํ•ด์‰ฌ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ (String๊ณผ์˜ ์ฐจ์ด์ )

System.out.println("sb์˜ hashCode : " + sb.hashCode());

[3] ๋ฌธ์ž์—ด์ด ์ˆ˜์ •๋จ (๊ฐ€๋ณ€)

// oracle ๋ฌธ์ž์—ด ์ถ”๊ฐ€
sb.append("oracle"); 
		
System.out.println("sb : " + sb); // javaoracle

>>>  ๋ฌธ์ž์—ด์„ ์ˆ˜์ •ํ•ด๋„ ๊ธฐ์กด์˜ ์ธ์Šคํ„ด์Šค์™€ ๋™์ผํ•œ ์ฃผ์†Œ ๊ฐ’์„ ๊ฐ€์ง
>>> ์ฆ‰, ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•ด๋„ ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒƒ X, ์ธ์Šคํ„ด์Šค์˜ ๊ฐ’ ์ž์ฒด๊ฐ€ ๋ณ€๊ฒฝ๋จ
 
 System.out.println("sb์˜ hashCode : " + sb.hashCode());
>>> oracle ๋ฌธ์ž์—ด์ด ์ถ”๊ฐ€๋˜๋ฉด์„œ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด์ด ๋˜์—ˆ์ง€๋งŒ '๊ฐ™์€ ์ฃผ์†Œ๊ฐ’ ์ถœ๋ ฅ'

๐Ÿ‘‰ StringBuilder์˜ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์†Œ๋“œ

๐Ÿ™‹โ€ ์ž ๊น ! ์™œ StringBuilder๋ฅผ ์‚ฌ์šฉํ•˜๋‚˜์š”?

  • String์€ ๋ถˆ๋ณ€์ด๋ฏ€๋กœ ๊ฐ’์„ ๊ณ„์† ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ์‹œํ‚ฌ๊ฒฝ์šฐ, ๋น„ํšจ์œจ์ ์œผ๋กœ ๊ฐ์ฒด ์ƒ์„ฑ์„ ๋งŽ์ด ํ•˜๊ฒŒ ๋จ
    ํ•˜์ง€๋งŒ StringBuilder๋Š” ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด heap์— ์žˆ๋Š” ๊ฐ์ฒด์˜ ๊ฐ’ ์ž์ฒด๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด๋‹ค ํšจ์œจ์ 
    ๋”ฐ๋ผ์„œ, ๊ฐ’์ด ๋งŽ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃฐ ๊ฒฝ์šฐ StringBuilder๋ฅผ ์‚ฌ์šฉ

// StringBuilder ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋กœ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
StringBuilder sb1 = new StringBuilder();

1) capacity()

capacity() : ์šฉ๋Ÿ‰(ํ˜„์žฌ ๋ฒ„ํผ ํฌ๊ธฐ)์„ ์ •์ˆ˜ํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ (๋ฌธ์ž์—ด ๊ธธ์ด + 16์ด ๊ธฐ๋ณธ ์šฉ๋Ÿ‰)

System.out.println(sb1.capacity());	// 16

2) append()

append() : ์ธ์ž๋กœ ์ „๋‹ฌ๋œ ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ ํ›„ ๊ธฐ์กด ๋ฌธ์ž์—ด์˜ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€. ๊ธฐ๋ณธ ์šฉ๋Ÿ‰์„ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ (๊ธฐ์กด ๋ฌธ์ž์—ด + 1) * 2๋ฅผ ํ•˜์—ฌ ์šฉ๋Ÿ‰์„ ํ™•์žฅ์‹œํ‚ด

for(int i = 0; i < 50; i++) {
	sb1.append(i);
			
	System.out.println("sb1 : " + sb1);
    
	System.out.println("capacity : " + sb1.capacity());
    >>>16 -> 34 -> 70 -> 142 ์ˆœ์„œ๋กœ ์ˆ˜์šฉ๋Ÿ‰์„ ๋Š˜๋ ค๊ฐ (2n + 2์”ฉ ์ฆ๊ฐ€)
    
	System.out.println("hashCode : " + sb1.hashCode());
    >>> hashCode๋Š” ๋ณ€ํ™” X. ๊ฐ์ฒด๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์ด๊ณ  ์ƒˆ๋กœ ์ƒ๊ธฐ๋Š” ๊ฒƒ์ด ์•„๋‹˜ (๋™์ผ ์ธ์Šคํ„ด์Šค)
}

๐Ÿ’ป Mini Console

sb1 : 0
capacity : 16
hashCode : 1365202186 // 1ํšŒ์ฐจ
sb1 : 01
capacity : 16
hashCode : 1365202186 // 2ํšŒ์ฐจ
sb1 : 012
capacity : 16
hashCode : 1365202186 // 3ํšŒ์ฐจ
sb1 : 0123
capacity : 16
hashCode : 1365202186 ......
// 49ํšŒ๊นŒ์ง€ ๊ณ„์† ์ถœ๋ ฅ

3) delete()

delete() : ์‹œ์ž‘ ์ธ๋ฑ์Šค์™€ ์ข…๋ฃŒ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•ด์„œ ๋ฌธ์ž์—ด์—์„œ ์›ํ•˜๋Š” ๋ถ€๋ถ„์˜ ๋ฌธ์ž์—ด ์ œ๊ฑฐ
deleteCharAt() : ๋ฌธ์ž์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•ด์„œ ๋ฌธ์ž ํ•˜๋‚˜ ์ œ๊ฑฐ
(์›๋ณธ ๋ฌธ์ž์—ด์— ์˜ํ–ฅ O)

// ์ƒˆ๋กœ์šด StringBuilder ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
StringBuilder sb2 = new StringBuilder("javaoracle");

System.out.println("delete() : " + sb2.delete(2, 5)); // jaracle
					>>> 2๋ฒˆ๋ถ€ํ„ฐ 5๋ฒˆ๊นŒ์ง€ ์ œ๊ฑฐ(2,3,4 ์ œ๊ฑฐ) = ja(vao)racle
System.out.println("deleteCharAt() : " + sb2.deleteCharAt(0)); // aracle
		
System.out.println("sb2 : " + sb2); // aracle
									>>> ์›๋ณธ ๋ณ€๊ฒฝ๋จ

4) insert()

insert() : ์ธ์ž๋กœ ์ „๋‹ฌ๋œ ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ ํ›„ ์ง€์ •ํ•œ ์ธ๋ฑ์Šค ์œ„์น˜์— ์ถ”๊ฐ€ (์›๋ณธ ๋ฌธ์ž์—ด์— ์˜ํ–ฅ O)

System.out.println("insert() : " + sb2.insert(1, "vao"));	// avaoracle
System.out.println("insert() : " + sb2.insert(0, "j")); 	// javaoracle
		
System.out.println("sb2 : " + sb2); // javaoracle 
									>>> insert๋ฅผ ์ด์šฉํ•˜์—ฌ ์›๋ณธ์œผ๋กœ ๋ณต๊ตฌ

5) reverse()

reverse() : ๋ฌธ์ž์—ด ์ธ๋ฑ์Šค ์ˆœ๋ฒˆ์„ ์—ญ์ˆœ์œผ๋กœ ์žฌ๋ฐฐ์—ด (์›๋ณธ ๋ฌธ์ž์—ด์— ์˜ํ–ฅ O)

System.out.println("reverse() : " + sb2.reverse());	// elcaroavaj
System.out.println("sb2 : " + sb2); 				// elcaroavaj

๐Ÿ‘€ Wrapper ํด๋ž˜์Šค

๐Ÿ’โ€โ™€๏ธ Wrapper ํด๋ž˜์Šค๋ž€,
์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ธฐ๋ณธ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๋“ค์ด ๋ฐœ์ƒํ•  ๋•Œ, ๊ธฐ๋ณธ ํƒ€์ž… ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ์ธ์Šคํ„ด์Šค๋กœ ๋ณ€ํ™˜ํ•œ ํ›„ ์‚ฌ์šฉํ•ด์•ผํ•จ. ์ด๋•Œ, 8๊ฐ€์ง€์— ํ•ด๋‹นํ•˜๋Š” ๊ธฐ๋ณธ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํด๋ž˜์Šค


๐Ÿ’โ€โ™€๏ธ Boxing & UnBoxing์ด๋ž€,

  • Boxing : ๋ณธ ํƒ€์ž…์„ ๋ž˜ํผ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋กœ ์ธ์Šคํ„ด์Šคํ™” ํ•˜๋Š” ๊ฒƒ
  • UnBoxing : ๋ž˜ํผ ํด๋ž˜์Šค ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ธฐ๋ณธ ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ

๐Ÿ‘‰ Wrapper ํด๋ž˜์Šค์˜ ํ™œ์šฉ

[1] Boxing & UnBoxing

int intValue = 20;

Integer boxingNumber1 = new Integer(intValue);		>>> ์ธ์Šคํ„ด์Šคํ™”(Boxing) => ์ƒ์„ฑ์ž ์ด์šฉ
Integer boxingNumber2 = Integer.valueOf(intValue);	>>> ์ธ์Šคํ„ด์Šคํ™”(Boxing) => static ๋ฉ”์†Œ๋“œ ์ด์šฉ
		
int nuBoxingNumber1 = boxingNumber1.intValue();     >>> ์–ธ๋ฐ•์‹ฑ(UnBoxing) => intValue ๋ฉ”์†Œ๋“œ ์ด์šฉ

[2] Auto Boxing & Auto UnBoxing

๐Ÿ’โ€โ™€๏ธ Boxing๊ณผ UnBoxing์ด ํ•„์š”ํ•œ ์ƒํ™ฉ์—์„œ ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ

Integer boxingNumber3 = intValue;
int unBoxingNumber2 = boxingNumber3;

[3] Wrapper ํด๋ž˜์Šค ๊ฐ’ ๋น„๊ต

int inum = 20;
Integer integerNum1 = new Integer(20);	>>> ์ƒ์„ฑ์ž๋กœ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
Integer integerNum2 = new Integer(20);
Integer integerNum3 = 20; 				>>> ์˜คํ†  ๋ฐ•์‹ฑ๋˜์–ด ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
Integer integerNum4 = 20;

[4] ๊ธฐ๋ณธ ํƒ€์ž…๊ณผ ๋ ˆํผ๋Ÿฐ์Šค ํด๋ž˜์Šค ํƒ€์ž…์€ == ์—ฐ์‚ฐ์œผ๋กœ ๋น„๊ต ๊ฐ€๋Šฅ

System.out.println("int์™€ Integer ๋น„๊ต : " + (inum == integerNum1)); >>> ๊ฐ’ ๋น„๊ต๊ฐ€ ๋˜์–ด true ์ถœ๋ ฅ
System.out.println("int์™€ Integer ๋น„๊ต : " + (inum == integerNum3)); >>> ๊ฐ’ ๋น„๊ต๊ฐ€ ๋˜์–ด true ์ถœ๋ ฅ

[5] ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•ด ์ƒ์„ฑํ•œ ๊ฐ’๊ณผ ์˜คํ†  ๋ฐ•์‹ฑ์œผ๋กœ ์ƒ์„ฑํ•œ ๊ฐ’์„ == ์—ฐ์‚ฐ์ž๋กœ ๋น„๊ต (์ฃผ์†Œ ๊ฐ’ ๋น„๊ต)

  • ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•ด ์ƒ์„ฑํ•œ ๊ฐ’์˜ ๊ฒฝ์šฐ ==๋กœ ๋น„๊ต X
  • ์˜คํ†  ๋ฐ•์‹ฑ์œผ๋กœ ์ƒ์„ฑํ•œ ๊ฐ’์€ ==๋กœ ๋น„๊ต O
System.out.println("Integer์™€ Integer ๋น„๊ต : " + (integerNum1 == integerNum2)); // false
										>>> ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅด๋ฏ€๋กœ ์ฃผ์†Œ๊ฐ’์„ ๋น„๊ตํ–ˆ์„ ๋•Œ, false
System.out.println("Integer์™€ Integer ๋น„๊ต : " + (integerNum1 == integerNum3)); // false
										>>> ์œ„์™€ ๋™์ผํ•œ ์ด์œ ๋กœ, false
System.out.println("Integer์™€ Integer ๋น„๊ต : " + (integerNum3 == integerNum4)); // true 
								   		>>> ์˜คํ† ๋ฐ•์‹ฑ๋˜์–ด ์ฃผ์†Œ๊ฐ’์„ ๋น„๊ตํ–ˆ์„ ๋•Œ, true

[6] equals()

equals() : ๋ž˜ํผ ํด๋ž˜์Šค ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค์˜ "๊ฐ’"์„ ๋น„๊ตํ•  ๋•Œ ์‚ฌ์šฉ (๋ž˜ํผ ํด๋ž˜์Šค์—๋„ equals๊ฐ€ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋˜์–ด์žˆ์Œ)

System.out.println("equals() : " + (integerNum1.equals(integerNum2)));
System.out.println("equals() : " + (integerNum1.equals(integerNum3)));
System.out.println("equals() : " + (integerNum3.equals(integerNum4)));

๐Ÿ‘‰ parsing

parseByte() parseShort() parseInt() parseLong() parseFloat() parseDouble() parseBoolean()

๐Ÿ’โ€โ™€๏ธ parsing์ด๋ž€,
๋ฌธ์ž์—ด(String) ๊ฐ’์„ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ


byte b = Byte.parseByte("1");
System.out.println("b : " + b);
		
short s = Short.parseShort("2");
System.out.println("s : " + s);
		
>>> ์ˆซ์ž๋กœ parsing ์ฒ˜๋ฆฌํ•  ๋•Œ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฌธ์ž์—ด์„ ์ „๋‹ฌ ๋ฐ›์œผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜ ๋ฐœ์ƒ
>>> java.lang.NumberFormatException: For input string: "์•ˆ๋‡ฝ"

//int i = Integer.parseInt("์•ˆ๋‡ฝ");
int i = Integer.parseInt("4");
System.out.println("i : " + i);
		
long l = Long.parseLong("8");
System.out.println("l : " + l);
		
float f = Float.parseFloat("4.0");
System.out.println("f : " + f);
		
double d = Double.parseDouble("8.0");
System.out.println("d : " + d);
		
>>> boolean์œผ๋กœ ํŒŒ์‹ฑ ๋  ์ˆ˜ ์—†๋Š” ๋ฌธ์ž๊ฐ€ ์ „๋‹ฌ๋˜๋ฉด ๋ชจ๋‘ false๋กœ ํŒŒ์‹ฑ (๋ฌธ์ž์—ด๋„)
//boolean bl = Boolean.parseBoolean("๋น ์ด"); // false
boolean bl = Boolean.parseBoolean("true");
System.out.println("bl : " + bl);
		
>>> Character๋Š” parsing ๊ธฐ๋Šฅ ์ œ๊ณต X
>>> ๋”ฐ๋ผ์„œ, charAt()์„ ์‚ฌ์šฉํ•ด์•ผํ•จ
char c = "abc".charAt(0);
System.out.println("c : " + c);

๐Ÿ‘‰ valueOf() & toString()

valueOf() : ๊ธฐ๋ณธ์ž๋ฃŒํ˜• ๊ฐ’์„ Wrapper ํด๋ž˜์Šค ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜์‹œํ‚ค๋Š” ๋ฉ”์†Œ๋“œ
toString() : ํ•„๋“œ ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ

>>> parsing๊ณผ ๋ฐ˜๋Œ€๋กœ ๊ธฐ๋ณธ์ž๋ฃŒํ˜• ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ๋„ ํ•„์š”
		
String b = Byte.valueOf((byte)1).toString();
System.out.println("b : " + b);
		
String s = Short.valueOf((short)2).toString();
System.out.println("s : " + s);
		
String i = Integer.valueOf(4).toString();
System.out.println("i : " + i);
		
String l = Long.valueOf(8L).toString();
System.out.println("l : " + l);
		
String f = Float.valueOf(4.0f).toString();
System.out.println("f : " + f);
		
String d = Double.valueOf(8.0).toString();
System.out.println("d : " + d);
		
String bl = Boolean.valueOf(true).toString();
System.out.println("bl : " + bl);
		
String c = Character.valueOf('a').toString();
System.out.println("c : " + c);
		
>>> String ํด๋ž˜์Šค์˜ valueOf ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Œ
String str = String.valueOf(10);
System.out.println("str : " + str);
		
>>> ๋ฌธ์ž์—ด ํ•ฉ์น˜๊ธฐ๋ฅผ ์ด์šฉํ•ด String์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜๋„ ์žˆ์Œ
String str2 = 123 + "";
System.out.println("str2 : " + str2);

๐Ÿ‘€ Calendar

๐Ÿ‘‰ Date ํด๋ž˜์Šค (๋Œ€๋ถ€๋ถ„์˜ ๋ฉ”์†Œ๋“œ๊ฐ€ Deprecated)

[1] ๊ธฐ๋ณธ ์ƒ์„ฑ์ž

// ์šด์˜์ฒด์ œ์˜ ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ์ •๋ณด๋ฅผ ์ด์šฉํ•ด์„œ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
Date today = new Date();
		
>>> toString() ๋ฉ”์†Œ๋“œ๊ฐ€ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋˜์–ด์žˆ์–ด ์‰ฝ๊ฒŒ ํ•„๋“œ ๊ฐ’์„ ์ถœ๋ ฅํ•ด ๋ณผ ์ˆ˜ ์žˆ์Œ
>>> ์ฃผ์†Œ๊ฐ’์ด ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋ณด๋ฉด Date๋„ toString์„ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Œ
System.out.println(today); // Tue Jan 03 15:08:03 KST 2023 

>>> getTime() : 1970๋…„ 1์›” 1์ผ 0์‹œ 0๋ถ„ 0์ดˆ ์ดํ›„ ์ง€๋‚œ ์‹œ๊ฐ„์„ millisecond๋กœ ๊ณ„์‚ฐํ•ด์„œ long ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜
System.out.println(today.getTime());

[2] ๋งค๊ฐœ๋ณ€์ˆ˜ ์ƒ์„ฑ์ž

// ์ „๋‹ฌํ•˜๋Š” long ํƒ€์ž…์˜ ์ˆซ์ž ๊ธฐ์ค€์˜ ๋‚ ์งœ๋กœ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
Date time = new Date(0L);

System.out.println(time); // Thu Jan 01 09:00:00 KST 1970 (ํ•œ๊ตญ ์‹œ๊ฐ„ ๊ธฐ์ค€์œผ๋กœ ์ถœ๋ ฅ)

๐Ÿ‘‰ Calendar ํด๋ž˜์Šค

๐Ÿ’โ€โ™€๏ธ Calendar ํด๋ž˜์Šค๋ž€,
JDK 1.1๋ถ€ํ„ฐ ์ƒˆ๋กญ๊ฒŒ ์ œ๊ณต๋˜๋Š” ์‹œ๊ฐ„๊ณผ ๋‚ ์งœ์— ๊ด€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ํด๋ž˜์Šค. Calendar ํด๋ž˜์Šค๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด์„œ Date์˜ ๋งŽ์€ ๋ฉ”์†Œ๋“œ๋Š” Deprecated.


๐Ÿ“ Calendar ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•œ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๋ฐฉ๋ฒ•

1) getInstance() static ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค ๋ฐ˜ํ™˜
2) GregorianCalendar ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

>>> Calendar ํด๋ž˜์Šค๋Š” ์ถ”์ƒ ํด๋ž˜์Šค. ๋”ฐ๋ผ์„œ ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ X
//Calendar calendar = new Calendar();

[1] getInstance() static ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค ๋ฐ˜ํ™˜

Calendar calendar = Calendar.getInstance();
		
>>> toString์ด ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋˜์–ด์žˆ์–ด์„œ ๋ชจ๋“  ํ•„๋“œ์˜ ๊ฐ’์„ ํ™•์ธ ๊ฐ€๋Šฅ
>>> Date ํด๋ž˜์Šค์— ๋น„ํ•ด ๋งค์šฐ ๋งŽ์€ ํ•„๋“œ๊ฐ’์ด ์žˆ์œผ๋ฉฐ ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค ํƒ€์ž…์€ GregorianCalendar ํƒ€์ž…

System.out.println(calendar); >>> toString ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋˜์–ด์žˆ์–ด ์ฃผ์†Œ๊ฐ’์ด ์•„๋‹Œ ํ•„๋“œ๊ฐ’ ์ถœ๋ ฅ

[2] GregorianCalendar ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

>>> ์œ„ ๋ฐฉ๋ฒ•๊ณผ ๊ฐ’์€ ๋™์ผํ•˜๊ฒŒ ์ถœ๋ ฅ

Calendar gregorianCalendar = new GregorianCalendar(); 
							>>> GregorianCalendar์€ Calander์˜ ํ›„์† ํด๋ž˜์Šค

System.out.println(gregorianCalendar);

[3] ๋…„, ์›”, ์ผ, ์‹œ, ๋ถ„, ์ดˆ ์ •๋ณด๋ฅผ ์ด์šฉํ•ด์„œ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

int year = 2023;
int month = 6 - 1;		>>> ์›”์€ 0~11๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜ (6์›”์„ ํ‘œํ˜„ํ•˜๋ ค๋ฉด 6-1์›”)
int dayOfMonth = 9;
int hour = 15;
int min = 10;
int second = 30;
		
Calendar endDay = new GregorianCalendar(year, month, dayOfMonth, hour, min, second);
System.out.println(endDay);

[4] ํŠน์ • ์ผ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ Date ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ

getTimeInMillis() : ๋จผ์ € GregorianCalendar๋ฅผ ์ด์šฉํ•ด์„œ ํŠน์ • ๋‚ ์งœ/์‹œ๊ฐ„ ์ •๋ณด๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•œ ํ›„, 1970๋…„ 1์›” 1์ผ 0์‹œ 0๋ถ„ 0์ดˆ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ง€๋‚œ ์‹œ๊ฐ„์„ millisecond์œผ๋กœ ๊ณ„์‚ฐํ•ด์„œ longํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ

System.out.println(endDay.getTimeInMillis());
		
Date date = new Date(endDay.getTimeInMillis());
System.out.println(date); // Fri Jun 09 09:10:30 KST 2023 ์ถœ๋ ฅ

[5] ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค์˜ ํ•„๋“œ ์ •๋ณด๋ฅผ Calendar ํด๋ž˜์Šค์— ์žˆ๋Š” get() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜ํ™˜ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ


int endYear = endDay.get(1);		// 2023
int endMonth = endDay.get(2);		// 5
int endDayOfMonth = endDay.get(5);	// 9
		
System.out.println(endYear);
System.out.println(endMonth);
System.out.println(endDayOfMonth);

[6] ์ธ์ž๋กœ ์ „๋‹ฌํ•˜๋Š” ์ •์ˆ˜์— ๋”ฐ๋ผ ํ•„๋“œ ๊ฐ’์„ ๋ฐ˜ํ™˜ ๋ฐ›๋Š”๋ฐ ๊ฐ ํ•„๋“œ์— ๋งค์นญ๋˜๋Š” ์ •์ˆ˜๋ฅผ ์™ธ์šฐ๊ณ  ์žˆ์„ ์ˆ˜๋Š” ์—†์œผ๋ฏ€๋กœ ํ•ด๋‹น ๊ฐ’์„ '์ƒ์ˆ˜ ํ•„๋“œ' ํ˜•ํƒœ๋กœ ์ œ๊ณต

Calendar.YEAR Calendar.MONTH Calendar.DATE Calendar.DAY_OF_WEEK

System.out.println(Calendar.YEAR);	// 1
System.out.println(Calendar.MONTH); // 2
System.out.println(Calendar.DATE); 	// 5

>>> get() ๋ฉ”์†Œ๋“œ์˜ ์ธ์ž๋กœ ์ •์ˆ˜๋ฅผ ๋„ฃ๋Š” ๊ฒƒ ๋Œ€์‹ , ์ƒ์ˆ˜ ํ•„๋“œ ๊ฐ’์„ ํ˜ธ์ถœํ•˜๋Š” ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ•˜๋ฉด 
>>> ๋ณด๋‹ค ์˜๋ฏธ ์ „๋‹ฌ์ด ์‰ฌ์šด ์ฝ”๋“œ๊ฐ€ ๋จ
System.out.println("year : " + endDay.get(Calendar.YEAR)); 		 	   // 2023
System.out.println("month : " + endDay.get(Calendar.MONTH)); 	 	   // 5
System.out.println("dayOfMonth : " + endDay.get(Calendar.DATE)); 	   // 9
System.out.println("dayOfWeek : " + endDay.get(Calendar.DAY_OF_WEEK)); // 6 => ๊ธˆ์š”์ผ
												>>> ์š”์ผ(์ผ-1, ์›”-2, ..., ํ† -7)์˜ ์˜๋ฏธ

[7] endDay๊ฐ€ ์–ด๋–ค ์š”์ผ์ธ์ง€ O์š”์ผ๋กœ ์ถœ๋ ฅํ•˜๊ธฐ

String day = "";
switch(endDay.get(Calendar.DAY_OF_WEEK)) {
case Calendar.SUNDAY : day = "์ผ"; break;
case Calendar.MONDAY : day = "์›”"; break;
case Calendar.TUESDAY : day = "ํ™”"; break;
case Calendar.WEDNESDAY : day = "์ˆ˜"; break;
case Calendar.THURSDAY : day = "๋ชฉ"; break;
case Calendar.FRIDAY : day = "๊ธˆ"; break;
case Calendar.SATURDAY : day = "ํ† "; break;
}
		
System.out.println(day + "์š”์ผ"); // ๊ธˆ์š”์ผ

[8] ์‹œ๊ฐ„๊ณผ ๊ด€๋ จ๋œ ์ƒ์ˆ˜ ํ•„๋“œ

Calendar.AM_PM Calendar.HOUR_OF_DAY Calendar.HOUR Calendar.MINUTE Calendar.SECOND

System.out.println("ampm : " + endDay.get(Calendar.AM_PM)); //  1
															>>> 0์€ ์˜ค์ „, 1์€ ์˜คํ›„
System.out.println(endDay.get(Calendar.AM_PM) == Calendar.AM ? "์˜ค์ „" : "์˜คํ›„"); // ์˜คํ›„
		
System.out.println("hourOfDay : " + endDay.get(Calendar.HOUR_OF_DAY));	// 15 => 24์‹œ๊ฐ„ ์ฒด๊ณ„
System.out.println("hour : " + endDay.get(Calendar.HOUR));				// 3 => 12์‹œ๊ฐ„ ์ฒด๊ณ„
		
System.out.println("min : " + endDay.get(Calendar.MINUTE));			// 10
System.out.println("second : " + endDay.get(Calendar.SECOND));		// 30

profile
Tiny little habits make me

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด