๐Ÿ“† Today I Learned(๊ฐœ๋ฐœ์–ธ์–ดํ•™์Šต)

    [JAVA] ๋ฌธ์ž์—ด ์ž๋ฅด๊ธฐ · ๋ถ„๋ฆฌ( substring() · split() )

    T1) ๋ฌธ์ž์—ด ์ž๋ฅด๊ธฐ ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ๋ถ€๋ถ„์˜ ๋ฌธ์ž์—ด์„ ์ถ”์ถœํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด substring() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. substring() ๋ฉ”์†Œ๋“œ์—์„œ๋„ ๋‹น์—ฐํžˆ ๊ณต๋ฐฑ๋„ ํฌํ•จํ•œ๋‹ค. substring(์‹œ์ž‘์ง€์ ) = ์‹œ์ž‘์ง€์ ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ฐ˜ํ™˜ substring(์‹œ์ž‘์ง€์ , ๋์ง€์ ) = ์‹œ์ž‘์ง€์ ๋ถ€ํ„ฐ ๋์ง€์  -1 ์œ„์น˜๊นŒ์ง€ ๋ฐ˜ํ™˜ public class StringVarTest { public static void main(String[] args) { String str = " ๋ฌธ์ž๋ฌธ์ง€๋ฐฉ๋ฌธ"; System.out.println(str.substring(1));//๋ฌธ์ž๋ฌธ์ง€๋ฐฉ๋ฌธ System.out.println(str.substring(1, 3));//๋ฌธ์ž } } T2) ๋ฌธ์ž์—ด ๋ถ„๋ฆฌ ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ๋ฌธ์ž(๊ตฌ๋ถ„์ž)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด..

    [JAVA] ๋ฌธ์ž์—ด ๊ธธ์ด · ๋ฌธ์ž์—ด ๋Œ€์ฒด

    T1) ๋ฌธ์ž์—ด ๊ธธ์ด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด length() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” ๊ณต๋ฐฑ์„ ํฌํ•จํ•œ๋‹ค. public class StringVarTest { public static void main(String[] args) { String str = ""; String str1 = "๋ฌธ์ž์—ด"; String str2 = "๋ฌธ ์ž ์—ด"; System.out.println(str.length()); // 0 System.out.println(str1.length()); // 3 System.out.println(str2.length()); // 5 } } T2) ๋ฌธ์ž์—ด ๋Œ€์ฒด ๋ฌธ์ž์—ด ์ผ๋ถ€๋ถ„์„ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด๋กœ ๋Œ€์ฒดํ•˜๊ณ  ์‹ถ์œผ๋ฉด replace() · replaceAll() · replaceFirst()..

    [JAVA] ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ์˜์—ญ

    T1) java ๋ช…๋ น์–ด๋กœ JVM์ด ๊ตฌ๋™๋œ๋‹ค๋ฉด JVM์€ ์šด์˜์ฒด์ œ์—์„œ ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ(Runtime Data Area)์„ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ถ„ํ•ด์„œ ์‚ฌ์šฉํ• ๊นŒ? ๋ฉ”์†Œ๋“œ ์˜์—ญ(Method) : ๋ฐ”์ดํŠธ์ฝ”๋“œ ํŒŒ์ผ์„ ์ฝ์€ ๋‚ด์šฉ์ด ์ €์žฅ๋˜๋Š” ์˜์—ญ์ด๋‹ค. ํด๋ž˜์Šค๋ณ„๋กœ ์ƒ์ˆ˜, ์ •์  ํ•„๋“œ, ๋ฉ”์†Œ๋“œ ์ฝ”๋“œ, ์ƒ์„ฑ์ž ์ฝ”๋“œ ๋“ฑ์ด ์ €์žฅ๋œ๋‹ค. ํž™ ์˜์—ญ(Heap) : ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ์˜์—ญ์ด๋‹ค. ๊ฐ์ฒด์˜ ๋ฒˆ์ง€(์ฃผ์†Œ)๋Š” ๋ฉ”์†Œ๋“œ ์˜์—ญ๊ณผ ์Šคํƒ ์˜์—ญ์˜ ์ƒ์ˆ˜์™€ ๋ณ€์ˆ˜์—์„œ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์Šคํƒ ์˜์—ญ(Stack) : ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ์ƒ์„ฑ๋˜๋Š” ํ”„๋ ˆ์ž„(Frame)์ด ์ €์žฅ๋˜๋Š” ์˜์—ญ์ด๋‹ค. ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ์ด ๋๋‚˜๋ฉด ํ”„๋ ˆ์ž„์€ ์ž๋™ ์ œ๊ฑฐ๋œ๋‹ค. ํ”„๋ ˆ์ž„ ๋‚ด๋ถ€์—๋Š” ๋กœ์ปฌ ๋ณ€์ˆ˜ ์Šคํƒ์ด ์žˆ๋‹ค. ํ”„๋ ˆ์ž„ ๋‚ด๋ถ€์—์„œ ๊ธฐ๋ณธ ํƒ€์ž… ๋ณ€์ˆ˜์™€ ์ฐธ์กฐ ํƒ€์ž… ๋ณ€์ˆ˜๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์ œ๊ฑฐ๋œ๋‹ค. ๊ฒฐ๋ก  : ==, ..

    [JAVA] ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ถ„๋ฅ˜

    ๋ฐ์ดํ„ฐ ํƒ€์ž…(Data Type) ๊ธฐ๋ณธ ํƒ€์ž…(primitive type) ์ •์ˆ˜ ํƒ€์ž… byte char short int long ์‹ค์ˆ˜ ํƒ€์ž… float double ๋…ผ๋ฆฌํƒ€์ž… boolean ์ฐธ์กฐ ํƒ€์ž…(reference type) ๋ฐฐ์—ด ํƒ€์ž… ์—ด๊ฑฐํƒ€์ž… ํด๋ž˜์Šค ์ธํ„ฐํŽ˜์ด์Šค ๊ธฐ๋ณธ ํƒ€์ž…์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ๊ฐ’ ์ž์ฒด๋ฅผ ์ €์žฅํ•˜๊ณ , ์ฐธ์กฐ ํƒ€์ž…์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” *๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ ๋ฉ”๋ชจ๋ฆฌ ๋ฒˆ์ง€๋ฅผ ์ €์žฅํ•œ๋‹ค. ๊ธฐ๋ณธ ํƒ€์ž… ๋ณ€์ˆ˜ ( ๊ฐ’ ) ์ฐธ์กฐ ํƒ€์ž… ๋ณ€์ˆ˜ ( ๋ฉ”๋ชจ๋ฆฌ ๋ฒˆ์ง€ ) → ( ๋ฉ”๋ชจ๋ฆฌ ๋ฒˆ์ง€) ๊ฐ์ฒด ๋ณ€์ˆ˜๋“ค์€ ์Šคํƒ(stack)์ด๋ผ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์ƒ์„ฑ์ด ๋œ๋‹ค. ์Šคํƒ์— ์ €์žฅ๋œ ๋ณ€์ˆ˜๋“ค ์ค‘ ๊ธฐ๋ณธํƒ€์ž… ๋ณ€์ˆ˜๋“ค์€ ์ง์ ‘ ๊ฐ’์„ ๋“ค๊ณ  ์žˆ์ง€๋งŒ, ์ฐธ์กฐ ํƒ€์ž… ๋ณ€์ˆ˜๋“ค์€ ์ฐธ์กฐํ•  ๋ฐ์ดํ„ฐ์˜ ๋ฒˆ์ง€(์ฃผ์†Œ)๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ๊ทธ ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ํž™(heap) ์˜์—ญ์˜ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค..

    [JAVA] Switch Expressions (Java 12์ดํ›„)

    Switch & Switch Expressions ์‚ฌ์šฉ์˜ˆ์‹œ public class SwitchValueExample { public static void main(String[] args) { String grade = "B"; //Java 11 ์ด์ „ ๋ฌธ๋ฒ• int score1 = 0; switch(grade) { case "A": score1 = 100; break; case "B": int result = 100 - 20; score1 = result; break; default: score1 = 60; } System.out.println("score1: " + score1); //Java 12๋ถ€ํ„ฐ ๊ฐ€๋Šฅ int score2 = switch(grade) { case "A" -> 100; case "B"..

    [JAVA] NaN๊ณผ Infinity

    NaN ๊ณผ Infinity ๋ฐœ์ƒ ๊ฒฝ์šฐ ๋‚˜๋ˆ—์…ˆ ๋˜๋Š” ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ ์‹œ ์ขŒ์ธก ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์ •์ˆ˜์ด๊ณ  ์šฐ์ธก ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ 0์ผ ๊ฒฝ์šฐ ์˜ˆ์™ธ(ArithmeticException)๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋ฌดํ•œ๋Œ€์˜ ๊ฐ’์„ ์ •์ˆ˜๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. (ex int result = 5 / 0) ์ขŒ์ธก ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์‹ค์ˆ˜ ์ด๊ฑฐ๋‚˜ ์šฐ์ธก ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ 0.0๋˜๋Š” 0,0f์ด๋ฉด ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋Š” Infinity ๋˜๋Š” NaN(Not a Number)์ด ๋œ๋‹ค. ์ด ๊ฒฝ์šฐ ์–ด๋–ค ์—ฐ์‚ฐ์„ ํ•˜๋”๋ผ๋„ ๊ฒฐ๊ณผ๋Š” ๊ณ„์† ๊ฐ™์€ ๊ฒƒ์ด๊ธฐ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—‰๋ง์ด ๋  ์ˆ˜์žˆ์œผ๋ฏ€๋กœ ๊ณ„์†ํ•ด์„œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค. (ex Infinity + 2 → Infinity, NaN + 2 → NaN) ๋ฏธ๋ฆฌ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ• Double.isInfinite() ์™€ Double.in..

    [JAVA] ๋ฌธ์ž์—ด ๋ฐ˜๋ณต ( String.repeat()ํ™œ์šฉ )

    ๋ฌธ์ž์—ด์„ ๋ฐ˜๋ณตํ•ด์„œ ์ถœ๋ ฅํ•˜๊ธฐ for๋ฌธ ํ™œ์šฉ class Solution { public String solution(String my_string, int k) { String answer = ""; for(int i=0; i

    [JAVA] ๋ฌธ์ž ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ

    ๋ฌธ์ž์—ด ๋ฐฐ์—ด์„ ํŽธํ•˜๊ฒŒ ์ด์–ด๋ถ™์ด๊ธฐ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๊ฒƒ์€ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค. foreach๋ฌธ ํ™œ์šฉ(java1.5 ๋ถ€ํ„ฐ ์‚ฌ์šฉ๊ฐ€๋Šฅ) class Solution { public String solution(String[] arr) { String answer = ""; for(String word : arr){ answer += word; } return answer; } } String.join() ๋ฉ”์†Œ๋“œ ํ™œ์šฉ(java8 ๋ถ€ํ„ฐ ์‚ฌ์šฉ๊ฐ€๋Šฅ) class Solution { public String solution(String[] arr) { return String.join("", arr); } } String.join()์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ String์„ ์ด์–ด๋ถ™์—ฌ์„œ ํ•˜๋‚˜์˜ String์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋ฉ”์†Œ๋“œ์ด๋‹ค. ํ™œ์šฉ..