1. ๋ฌธ์ž์—ด ๋น„๊ต

์ด๊ฒƒ์€ ๋ชจ๋‘ ํ›Œ๋ฅญํ•˜๊ณ  ์ข‹์Šต๋‹ˆ๋‹ค. s1๊ทธ๋Ÿฌ๋‚˜ ๋ฐ s2๋ฌธ์ž์—ด์ด ์‹ค์ œ๋กœ ๋™์ผํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ์ฆ‰, ๋™์ผํ•œ ํ…์ŠคํŠธ๋ฅผ ํฌํ•จํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•  ๋•Œ ๊ฐ์ฒด์˜ ์ฃผ์†Œ๊ฐ€ ์•„๋‹ˆ๋ผ String๋‚ด์šฉ์„ ๋ณด๋„๋ก ํ”„๋กœ๊ทธ๋žจ์— ์ง€์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ด๋ฅผ ๋•๊ธฐ ์œ„ํ•ด Java์˜ Stringํด๋ž˜์Šค ์—๋Š” equals๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜ธ์ถœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

string1.equals(string2)
๋‘ ๋ฌธ์ž์—ด ๋น„๊ต

์ด ๋ฉ”์„œ๋“œ๋Š” true๋ฌธ์ž์—ด์ด ๋™์ผํ•œ ๊ฒฝ์šฐ์™€ false๋™์ผํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ:

์•”ํ˜ธ ๋ฉ”๋ชจ
String s1 = "Hello";
String s2 = "HELLO";
String s3 = s1.toUpperCase();

System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
System.out.println(s2.equals(s3));
// Hello
// HELLO
// HELLO

false // They are different
false // They are different
true // They are the same, even though the addresses are different

๋” ๋งŽ์€ ์˜ˆ:

์•”ํ˜ธ ์„ค๋ช…
"Hello".equals("HELLO")
false
String s = "Hello";
"Hello".equals(s);
true
String s = "Hel";
"Hello".equals(s + "lo");
true
String s = "H";
(s + "ello").equals(s + "ello");
true


2. ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ž์—ด ๋น„๊ต

๋งˆ์ง€๋ง‰ ์˜ˆ์—์„œ ๋น„๊ต ๊ฒฐ๊ณผ๊ฐ€ ์ž„์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค . ์‹ค์ œ๋กœ ๋ฌธ์ž์—ด์€ ๋™์ผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ..."Hello".equals("HELLO")false

๋ถ„๋ช…ํžˆ ๋ฌธ์ž์—ด์€ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋‚ด์šฉ์€ ๋™์ผํ•œ ๋ฌธ์ž๋ฅผ ๊ฐ€์ง€๋ฉฐ ๋ฌธ์ž์˜ ๋Œ€/์†Œ๋ฌธ์ž๋งŒ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์„ ๋น„๊ตํ•˜๊ณ  ๋ฌธ์ž์˜ ๋Œ€์†Œ ๋ฌธ์ž๋ฅผ ๋ฌด์‹œํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ฆ‰, ๊ทธ๋ž˜์„œ ๊ทธ๊ฒƒ์€ ์ˆ˜์œจ ?"Hello".equals("HELLO")true

๊ทธ๋ฆฌ๊ณ  ์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋Œ€๋‹ต์€ '์˜ˆ'์ž…๋‹ˆ๋‹ค. Java์—์„œ String์œ ํ˜•์—๋Š” ๋˜ ๋‹ค๋ฅธ ํŠน์ˆ˜ ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค equalsIgnoreCase. ํ˜ธ์ถœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

string1.equalsIgnoreCase(string2)

๋ฉ”์„œ๋“œ์˜ ์ด๋ฆ„์€ ๋Œ€๋žต์ ์œผ๋กœ compare but ignore case ๋กœ ๋ฒˆ์—ญ๋ฉ๋‹ˆ๋‹ค . ๋ฉ”์„œ๋“œ ์ด๋ฆ„์˜ ๋ฌธ์ž์—๋Š” ๋‘ ๊ฐœ์˜ ์ˆ˜์ง์„ ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ์†Œ๋ฌธ์ž L์ด๊ณ  ๋‘ ๋ฒˆ์งธ๋Š” ๋Œ€๋ฌธ์ž์ž…๋‹ˆ๋‹ค i. ๊ทธ๊ฒƒ์ด ๋‹น์‹ ์„ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฒŒ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์˜ˆ:

์•”ํ˜ธ ๋ฉ”๋ชจ
String s1 = "Hello";
String s2 = "HELLO";
String s3 = s1.toUpperCase();

System.out.println(s1.equalsIgnoreCase(s2));
System.out.println(s1.equalsIgnoreCase(s3));
System.out.println(s2.equalsIgnoreCase(s3));  
// Hello
// HELLO
// HELLO

true
true
true


3. ๋ฌธ์ž์—ด ๋น„๊ต์˜ ์˜ˆ

ํ•œ ๊ฐ€์ง€ ๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ‚ค๋ณด๋“œ์—์„œ ๋‘ ์ค„์„ ์ž…๋ ฅํ•˜๊ณ  ๊ฐ™์€์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Scanner console = new Scanner(System.in);
String a = console.nextLine();
String b = console.nextLine();
String result = a.equals(b) ? "Same" : "Different";
System.out.println(result);

4. ๋ฌธ์ž์—ด ๋น„๊ต์˜ ํฅ๋ฏธ๋กœ์šด ๋‰˜์•™์Šค

์•Œ์•„์•ผ ํ•  ์ค‘์š”ํ•œ ๋‰˜์•™์Šค๊ฐ€ ํ•˜๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Java ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ฝ”๋“œ์—์„œ(ํŠนํžˆ ์ฝ”๋“œ์—์„œ) ๋™์ผํ•œ ๋ฌธ์ž์—ด์„ ์—ฌ๋Ÿฌ ๊ฐœ ๋ฐœ๊ฒฌํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝํ•˜๊ธฐ ์œ„ํ•ด ๋‹จ์ผ ๊ฐ์ฒด๋งŒ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

String text = "This is a very important message";
String message = "This is a very important message";

๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ํฌํ•จ๋˜๋Š” ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฌธ์ž์—ด ๋น„๊ต

text == message๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์„œ ๋น„๊ตํ•˜๋ฉด true. ๊ทธ๋Ÿฌ๋‹ˆ ๋†€๋ผ์ง€ ๋งˆ์„ธ์š”.

์–ด๋–ค ์ด์œ ๋กœ ์ฐธ์กฐ๊ฐ€ ์‹ค์ œ๋กœ ๋‹ฌ๋ผ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

String text = "This is a very important message";
String message = new String ("This is a very important message");

์•„๋‹ˆ๋ฉด ์ด๊ฑฐ:

String text = "This is a very important message";
String message = new String (text);

์ด ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ text๋ฐ message๋ณ€์ˆ˜๋Š” ๋™์ผํ•œ ํ…์ŠคํŠธ๋ฅผ ํฌํ•จํ•˜๋Š” ๋‹ค๋ฅธ ๊ฐœ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.