๐โโ๏ธ API(Application Programming Interface)์ด๋,
์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ ์ ์๋๋ก ์ด์์ฒด์ ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์ ์ดํ ์ ์๊ฒ ๋ง๋ ์ธํฐํ์ด์ค
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);
}
}
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);
}
}
๐โ ์ ๊น ! ๋์ผ ๊ฐ์ฒด์ ๋๋ฑ ๊ฐ์ฒด๊ฐ ๋ญ๊ฐ์?
- ๋์ผ ๊ฐ์ฒด : ์ฃผ์๊ฐ ๋์ผํ ์ธ์คํด์ค
- ๋๋ฑ ๊ฐ์ฒด : ์ฃผ์๋ ๋ค๋ฅด๋๋ผ๋ ํ๋ ๊ฐ์ด ๋์ผํ ๊ฐ์ฒด
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 ์ถ๋ ฅ (๋๋ฑ ๊ฐ์ฒด ํ์ธ)
}
}
๐ 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 ๋ณด๋ค ์ฑ๋ฅ์ด ์ข์
charAt()
: ํด๋น ๋ฌธ์์ด์ ํน์ ์ธ๋ฑ์ค์ ํด๋นํ๋ ๋ฌธ์๋ฅผ ๋ฐํ
์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํ๋ ์ซ์ ์ฒด๊ณ๋ฅผ ์๋ฏธํ๋ฉฐ, ์ธ๋ฑ์ค๋ฅผ ๋ฒ์ด๋ ์ ์๋ฅผ ์ธ์๋ก ์ ๋ฌํ๋ ๊ฒฝ์ฐ์๋ IndexOutOfBoundsException์ด ๋ฐ์
String str1 = "apple";
for(int i = 0; i < str1.length(); i++) {
System.out.println("charAt(" + i + ") : " + str1.charAt(i));
}
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));
concat()
: ๋ฌธ์์ด์ ์ธ์๋ก ์ ๋ฌ ๋ ๋ฌธ์์ด์ ํฉ์น๊ธฐํด์ ์๋ก์ด ๋ฌธ์์ด์ ๋ฐํ (์๋ณธ ๋ฌธ์์ด์ ์ํฅ X)
System.out.println("concat() : " + (str2.concat(str5))); // javaoracle
System.out.println("str2 : " + str2); // java
indexOf()
: ๋ฌธ์์ด์์ ํน์ ๋ฌธ์๋ฅผ ํ์ํ์ฌ ์ฒ์ ์ผ์นํ๋ ์ธ๋ฑ์ค ์์น๋ฅผ ์ ์ํ์ผ๋ก ๋ฐํ (๋จ, ์ผ์นํ๋ ๋ฌธ์๊ฐ ์๋ ๊ฒฝ์ฐ -1์ ๋ฐํ)
String indexOf = "java oracle";
System.out.println("indexOf('a') : " + indexOf.indexOf('a')); // 1
System.out.println("indexOf('z') : " + indexOf.indexOf('z')); // -1
lastIndexOf() : ๋ฌธ์์ด ํ์์ ๋ค์์๋ถํฐ ํ๊ณ ์ฒ์ ์ผ์นํ๋ ์์น์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํ (๋จ, ์ผ์นํ๋ ๋ฌธ์๊ฐ ์๋ ๊ฒฝ์ฐ -1์ ๋ฐํ)
System.out.println("lastIndexOf('a') : " + indexOf.lastIndexOf('a')); // 7
System.out.println("lastIndexOf('z') : " + indexOf.lastIndexOf('z')); // -1
trim()
: ๋ฌธ์์ด ์ ๋ค์ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ ๋ฌธ์์ด์ ๋ฐํ (์๋ณธ ๋ฌธ์์ด์ ์ํฅ X)
String trimStr = " java ";
System.out.println("trimStr : #" + trimStr + "#"); // # java #
System.out.println("trim() : #" + trimStr.trim() + "#"); // #java#
System.out.println("trimStr : #" + trimStr + "#"); // # java #
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
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
replace()
: ๋ฌธ์์ด์์ ๋์ฒดํ ๋ฌธ์์ด๋ก ๊ธฐ์กด ๋ฌธ์์ด์ ๋ณ๊ฒฝํด์ ๋ฐํ (์๋ณธ ๋ฌธ์์ด์ ์ํฅ X)
System.out.println("replace() : " + javaoracle.replace("java", "python")); // pythonoracle
System.out.println("javaoracle : " + javaoracle); // javaoracle
length()
: ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ์ ์ํ์ผ๋ก ๋ฐํ
System.out.println("length() : " + javaoracle.length()); // 10
System.out.println("๋น ๋ฌธ์์ด ๊ธธ์ด : " + ("".length())); // 0
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์ด ์๋
"" ๋ฆฌํฐ๋ด ํํ
: ๋์ผํ ๊ฐ์ ๊ฐ์ง๋ ์ธ์คํด์ค๋ฅผ ๋จ์ผ ์ธ์คํด์ค๋ก ๊ด๋ฆฌ
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 ๋ฉ์๋๊ฐ
>>> ์ค๋ฒ๋ผ์ด๋ฉ ๋์ด์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๊ฐ์ ์ฃผ์๊ฐ ์ถ๋ ฅ
>>> ๋ฌธ์์ด์ "๋ถ๋ณ"์ด๋ผ๋ ํน์ง์ ๊ฐ์ง๊ณ ์์ด
>>> ๊ธฐ์กด ๋ฌธ์์ด์ + ์ฐ์ฐ์๋ฅผ ์ํํ๋ ๊ฒฝ์ฐ ๋ฌธ์์ด์ ์์ ํ๋ ๊ฒ์ด ์๋๋ผ '์๋ก์ด ๋ฌธ์์ด์ ํ ๋น'
str2 += "oracle";
>>> str1, str2๋ ๋์ผ ์ธ์คํด์ค์์ง๋ง ์์ ํ์๋ ๋ค๋ฅธ ์ธ์คํด์ค๊ฐ ๋ ๊ฒ์ ํ์ธ
System.out.println("str1 == str2 : " + (str1 == str2)); // false
>>> str2์ ์ฃผ์๊ฐ์ด ๋ฌ๋ผ์ง
>>> 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
}
}
// ๊ฐ ๋ฌธ์์ด์ ์๋ฏธ๋ ์ฌ๋ฒ/์ด๋ฆ/์ฃผ์/๋ถ์ ๋ฅผ ์๋ฏธ
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
}
>>> ๋ง์ง๋ง ๊ตฌ๋ถ์ ์ฌ์ด์ ๊ฐ์ด ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ, ์ดํ ๊ฐ๋ ์ถ์ถํ๊ณ ์ถ์ ๋
>>> ๋ช ๊ฐ์ ํ ํฐ์ผ๋ก ๋ถ๋ฆฌํ ๊ฒ์ธ์ง ํ๊ณ์น๋ฅผ ๋๋ฒ์งธ ์ธ์๋ก ๋ฃ์ด์ค ์ ์์
>>> ์ด ๋, ์์๋ฅผ ๋ฃ๊ฒ ๋๋ฉด ๋ง์ง๋ง ๊ตฌ๋ถ์ ๋ค์ ๊ฐ์ด ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ ๋น ๋ฌธ์์ด๋ก ํ ํฐ์ ์์ฑ
String[] empArr4 = emp3.split("/", -1);
for(int i = 0; i < empArr4.length; i++) {
System.out.println("empArr4[" + i + "] : " + empArr4[i]);
} // ์์ ๋ฌ๋ฆฌ empArr4[3] : ๊ฐ ๊ณต๋ฐฑ์ผ๋ก ์ถ๋ ฅ์ด ๋จ
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());
}
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());
}
\n
System.out.println("์๋
ํ์ธ์.\n์ ๋ ํจ์ฐ์
๋๋ค.");
\t
System.out.println("์๋
\tํ์ธ์. ์ ๋ ์๋ฏผ์
๋๋ค.");
' '
\'
System.out.println("์๋
ํ์ธ์ ์ ๋ 'ํจ์ฐ'์
๋๋ค.");
//System.out.println('''); >>> ํ๋ฐ์ดํ ๋ฌธ์์ ๋ฌธ์ ๋ฆฌํฐ๋ด ๊ธฐํธ๊ฐ ์ค๋ณต๋์ด ์ถ๋ ฅ X
System.out.println('\''); >>> ' ์ ์ ์ถ๋ ฅ. ์ด์ค์ผ์ดํ ๋ฌธ์๋ฅผ ์ฌ์ฉํด์ ๊ตฌ๋ถํด์ค
\"
//System.out.println("์๋
ํ์ธ์ ์ ๋ "์น์ฆ"์
๋๋ค.");
System.out.println("์๋
ํ์ธ์ ์ ๋ \"์น์ฆ\"์
๋๋ค.");
\\
//System.out.println("์๋
ํ์ธ์ ์ ๋ \์๋ฏผ\์
๋๋ค.");
>>> ์ญ์ฌ๋์๋ฅผ ๋ฌธ์์ด์ ํํํ๊ณ ์ถ์ง๋ง ์ด์ค์ผ์ดํ ๋ฌธ์์ ๊ฒน์นจ
System.out.println("์๋
ํ์ธ์ ์ ๋ \\์๋ฏผ\\์
๋๋ค.");
StringBuilder sb = new StringBuilder("java");
System.out.println("sb : " + sb); >>> ์ฃผ์๊ฐ์ด ์๋ ๋ฌธ์์ด ๋ฐํ
>>> StringBuilder๋ toString์ด ์ค๋ฒ๋ผ์ด๋ฉ ๋์ด์์
์ฆ, ๋์ผํ ๊ฐ์ ๊ฐ์ง๋ ๊ฒฝ์ฐ ๊ฐ์ ํด์ฌ์ฝ๋๋ฅผ ๋ฐํํ์ง์๊ณ , ์ธ์คํด์ค๊ฐ ๋์ผํด์ผ ๊ฐ์ ํด์ฌ์ฝ๋๋ฅผ ๋ฐํ (String๊ณผ์ ์ฐจ์ด์ )
System.out.println("sb์ hashCode : " + sb.hashCode());
// oracle ๋ฌธ์์ด ์ถ๊ฐ
sb.append("oracle");
System.out.println("sb : " + sb); // javaoracle
>>> ๋ฌธ์์ด์ ์์ ํด๋ ๊ธฐ์กด์ ์ธ์คํด์ค์ ๋์ผํ ์ฃผ์ ๊ฐ์ ๊ฐ์ง
>>> ์ฆ, ๋ฌธ์์ด์ ์ถ๊ฐํด๋ ์๋ก์ด ์ธ์คํด์ค๊ฐ ์์ฑ๋ ๊ฒ X, ์ธ์คํด์ค์ ๊ฐ ์์ฒด๊ฐ ๋ณ๊ฒฝ๋จ
System.out.println("sb์ hashCode : " + sb.hashCode());
>>> oracle ๋ฌธ์์ด์ด ์ถ๊ฐ๋๋ฉด์ ๋ค๋ฅธ ๋ฌธ์์ด์ด ๋์์ง๋ง '๊ฐ์ ์ฃผ์๊ฐ ์ถ๋ ฅ'
๐โ ์ ๊น ! ์ StringBuilder๋ฅผ ์ฌ์ฉํ๋์?
- String์ ๋ถ๋ณ์ด๋ฏ๋ก ๊ฐ์ ๊ณ์ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒฝ์ํฌ๊ฒฝ์ฐ, ๋นํจ์จ์ ์ผ๋ก ๊ฐ์ฒด ์์ฑ์ ๋ง์ด ํ๊ฒ ๋จ
ํ์ง๋ง StringBuilder๋ ๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด heap์ ์๋ ๊ฐ์ฒด์ ๊ฐ ์์ฒด๊ฐ ๋ณ๊ฒฝ๋๊ธฐ ๋๋ฌธ์ ๋ณด๋ค ํจ์จ์
๋ฐ๋ผ์, ๊ฐ์ด ๋ง์ด ๋ณ๊ฒฝ๋๋ ๋ฌธ์์ด์ ๋ค๋ฃฐ ๊ฒฝ์ฐ StringBuilder๋ฅผ ์ฌ์ฉ
// StringBuilder ๊ธฐ๋ณธ ์์ฑ์๋ก ์ธ์คํด์ค ์์ฑ
StringBuilder sb1 = new StringBuilder();
capacity()
: ์ฉ๋(ํ์ฌ ๋ฒํผ ํฌ๊ธฐ)์ ์ ์ํ์ผ๋ก ๋ฐํํ๋ ๋ฉ์๋ (๋ฌธ์์ด ๊ธธ์ด + 16์ด ๊ธฐ๋ณธ ์ฉ๋)
System.out.println(sb1.capacity()); // 16
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ํ๊น์ง ๊ณ์ ์ถ๋ ฅ
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
>>> ์๋ณธ ๋ณ๊ฒฝ๋จ
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๋ฅผ ์ด์ฉํ์ฌ ์๋ณธ์ผ๋ก ๋ณต๊ตฌ
reverse()
: ๋ฌธ์์ด ์ธ๋ฑ์ค ์๋ฒ์ ์ญ์์ผ๋ก ์ฌ๋ฐฐ์ด (์๋ณธ ๋ฌธ์์ด์ ์ํฅ O)
System.out.println("reverse() : " + sb2.reverse()); // elcaroavaj
System.out.println("sb2 : " + sb2); // elcaroavaj
๐โโ๏ธ Wrapper ํด๋์ค๋,
์ํฉ์ ๋ฐ๋ผ ๊ธฐ๋ณธ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ธ์คํด์คํ ํด์ผํ๋ ๊ฒฝ์ฐ๋ค์ด ๋ฐ์ํ ๋, ๊ธฐ๋ณธ ํ์ ๋ฐ์ดํฐ๋ฅผ ๋จผ์ ์ธ์คํด์ค๋ก ๋ณํํ ํ ์ฌ์ฉํด์ผํจ. ์ด๋, 8๊ฐ์ง์ ํด๋นํ๋ ๊ธฐ๋ณธ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ธ์คํด์คํ ํ ์ ์๋๋ก ํ๋ ํด๋์ค
๐โโ๏ธ Boxing & UnBoxing์ด๋,
- Boxing : ๋ณธ ํ์ ์ ๋ํผ ํด๋์ค์ ์ธ์คํด์ค๋ก ์ธ์คํด์คํ ํ๋ ๊ฒ
- UnBoxing : ๋ํผ ํด๋์ค ํ์ ์ ์ธ์คํด์ค๋ฅผ ๊ธฐ๋ณธ ํ์ ์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ
int intValue = 20;
Integer boxingNumber1 = new Integer(intValue); >>> ์ธ์คํด์คํ(Boxing) => ์์ฑ์ ์ด์ฉ
Integer boxingNumber2 = Integer.valueOf(intValue); >>> ์ธ์คํด์คํ(Boxing) => static ๋ฉ์๋ ์ด์ฉ
int nuBoxingNumber1 = boxingNumber1.intValue(); >>> ์ธ๋ฐ์ฑ(UnBoxing) => intValue ๋ฉ์๋ ์ด์ฉ
๐โโ๏ธ Boxing๊ณผ UnBoxing์ด ํ์ํ ์ํฉ์์ ์๋ฐ ์ปดํ์ผ๋ฌ๊ฐ ์๋์ผ๋ก ์ฒ๋ฆฌ
Integer boxingNumber3 = intValue;
int unBoxingNumber2 = boxingNumber3;
int inum = 20;
Integer integerNum1 = new Integer(20); >>> ์์ฑ์๋ก ์ธ์คํด์ค ์์ฑ
Integer integerNum2 = new Integer(20);
Integer integerNum3 = 20; >>> ์คํ ๋ฐ์ฑ๋์ด ์ธ์คํด์ค ์์ฑ
Integer integerNum4 = 20;
System.out.println("int์ Integer ๋น๊ต : " + (inum == integerNum1)); >>> ๊ฐ ๋น๊ต๊ฐ ๋์ด true ์ถ๋ ฅ
System.out.println("int์ Integer ๋น๊ต : " + (inum == integerNum3)); >>> ๊ฐ ๋น๊ต๊ฐ ๋์ด true ์ถ๋ ฅ
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
equals()
: ๋ํผ ํด๋์ค ํ์
์ ์ธ์คํด์ค์ "๊ฐ"์ ๋น๊ตํ ๋ ์ฌ์ฉ (๋ํผ ํด๋์ค์๋ equals๊ฐ ์ค๋ฒ๋ผ์ด๋ฉ ๋์ด์์)
System.out.println("equals() : " + (integerNum1.equals(integerNum2)));
System.out.println("equals() : " + (integerNum1.equals(integerNum3)));
System.out.println("equals() : " + (integerNum3.equals(integerNum4)));
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()
: ๊ธฐ๋ณธ์๋ฃํ ๊ฐ์ 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);
// ์ด์์ฒด์ ์ ๋ ์ง์ ์๊ฐ ์ ๋ณด๋ฅผ ์ด์ฉํด์ ์ธ์คํด์ค ์์ฑ
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());
// ์ ๋ฌํ๋ long ํ์
์ ์ซ์ ๊ธฐ์ค์ ๋ ์ง๋ก ์ธ์คํด์ค ์์ฑ
Date time = new Date(0L);
System.out.println(time); // Thu Jan 01 09:00:00 KST 1970 (ํ๊ตญ ์๊ฐ ๊ธฐ์ค์ผ๋ก ์ถ๋ ฅ)
๐โโ๏ธ Calendar ํด๋์ค๋,
JDK 1.1๋ถํฐ ์๋กญ๊ฒ ์ ๊ณต๋๋ ์๊ฐ๊ณผ ๋ ์ง์ ๊ดํ ์ฒ๋ฆฌ๋ฅผ ๋ด๋นํ๋ ํด๋์ค. Calendar ํด๋์ค๊ฐ ์ถ๊ฐ๋๋ฉด์ Date์ ๋ง์ ๋ฉ์๋๋ Deprecated.
๐ Calendar ํด๋์ค๋ฅผ ์ด์ฉํ ์ธ์คํด์ค ์์ฑ ๋ฐฉ๋ฒ
1) getInstance() static ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ์ธ์คํด์ค ๋ฐํ
2) GregorianCalendar ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ์ธ์คํด์ค ์์ฑ
>>> Calendar ํด๋์ค๋ ์ถ์ ํด๋์ค. ๋ฐ๋ผ์ ์์ฑ์๋ฅผ ํตํด ์ธ์คํด์ค ์์ฑ X
//Calendar calendar = new Calendar();
Calendar calendar = Calendar.getInstance();
>>> toString์ด ์ค๋ฒ๋ผ์ด๋ฉ ๋์ด์์ด์ ๋ชจ๋ ํ๋์ ๊ฐ์ ํ์ธ ๊ฐ๋ฅ
>>> Date ํด๋์ค์ ๋นํด ๋งค์ฐ ๋ง์ ํ๋๊ฐ์ด ์์ผ๋ฉฐ ์์ฑ๋ ์ธ์คํด์ค ํ์
์ GregorianCalendar ํ์
System.out.println(calendar); >>> toString ์ค๋ฒ๋ผ์ด๋ฉ ๋์ด์์ด ์ฃผ์๊ฐ์ด ์๋ ํ๋๊ฐ ์ถ๋ ฅ
>>> ์ ๋ฐฉ๋ฒ๊ณผ ๊ฐ์ ๋์ผํ๊ฒ ์ถ๋ ฅ
Calendar gregorianCalendar = new GregorianCalendar();
>>> GregorianCalendar์ Calander์ ํ์ ํด๋์ค
System.out.println(gregorianCalendar);
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);
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 ์ถ๋ ฅ
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);
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)์ ์๋ฏธ
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 + "์์ผ"); // ๊ธ์์ผ
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