CodeGym /Java Blog /๋ฌด์ž‘์œ„์˜ /Java์˜ ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

Java์˜ ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
Java ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ์€ ๋‘˜ ์ด์ƒ์˜ ๋ฌธ์ž์—ด์„ ๊ฒฐํ•ฉํ•˜๊ณ  ์ƒˆ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์—ฐ๊ฒฐ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ์œ ํ˜•์„ ๋ฌธ์ž์—ด๋กœ ์บ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ Java์—์„œ ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

concat() ๋ฉ”์„œ๋“œ

Concat() ๋ฉ”์„œ๋“œ๋Š” ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์˜ ๋์— ์ง€์ •๋œ ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•œ ๋‹ค์Œ ๋ฐ˜ํ™˜ํ•˜๊ณ  ํ˜•์„ฑ๋œ ์ƒˆ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  concat() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ธ ๊ฐœ ์ด์ƒ์˜ ๋ฌธ์ž์—ด์„ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

concat() ๋ฉ”์„œ๋“œ ์‹œ๊ทธ๋‹ˆ์ฒ˜


public String concat(String str)
์ด ๋ฉ”์„œ๋“œ๋Š” ํ˜„์žฌ ๋ฌธ์ž์—ด์˜ ๋์—์„œ ๋ฌธ์ž์—ด str์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

String s1 = โ€œHello โ€; 
s1.concat("World")
์ƒˆ ๋ฌธ์ž์—ด "Hello World"๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

Concat() ๋ฉ”์„œ๋“œ ์˜ˆ์ œ

์ดˆ๊ธฐํ™” ํ›„ ๋‘ ๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•œ ๋‹ค์Œ ๋” ๋งŽ์€ ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋˜ ํ•˜๋‚˜์˜ ํฅ๋ฏธ๋กœ์šด ์˜ˆ: ์ธ์ˆ˜์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.

public class ConcatTest {

    public static void main(String[] args) {
        //String concat with concat() method 
        String string1 = "I learn ";
        String string2 = "concatenation in Java";
        //here we use concat() method to join the two strings above
        String result = string1.concat(string2);
        System.out.println(result);
        //concat() method to join 4 strings
        String myWebSite = "Code".concat("Gym").concat(".cc").concat("/quest");
        System.out.println(myWebSite); // here we've got  "CodeGym.cc/quest"

        System.out.println(myMessage(true));
        System.out.println(myMessage(false));
    }

    private static String myMessage(boolean b) {   //concat() method with selection statement 
        return "I have".concat(b ? " " : "n't ").concat("got it");
    }

}
์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
Java CodeGym.cc/quest์—์„œ ์—ฐ๊ฒฐ์„ ๋ฐฐ์›๋‹ˆ๋‹ค. ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ์–ป์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
concat() ๋ฉ”์„œ๋“œ๋Š” ๋ฌธ์ž์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ํ˜„์žฌ ๋ฌธ์ž์—ด๊ณผ ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋œ ๋ฌธ์ž์—ด์„ ๋ณ‘ํ•ฉํ•˜์—ฌ ์ƒˆ ๋ฌธ์ž์—ด์„ ์ƒ์„ฑํ•œ๋‹ค๋Š” ์ ์„ ์•„๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค . ๋”ฐ๋ผ์„œ ๋ฉ”์„œ๋“œ๋Š” ์ƒˆ๋กœ์šด String ๊ฐœ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ๊ธด String concat ์ฒด์ธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฒ„๋กœ๋“œ๋œ ์—ฐ์‚ฐ์ž "+" ๋ฐ "+="๋ฅผ ์‚ฌ์šฉํ•œ ์—ฐ๊ฒฐ

์ด ๋‘ ์—ฐ์‚ฐ์ž๋Š” ์ˆซ์ž์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. concat() ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค . "Code" ๋ฌธ์ž์—ด๊ณผ "Gym" ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•ด ๋ด…์‹œ๋‹ค.

public class StringConcat {
   public static void main(String[] args) {

       String myString = "Code" + "Gym";
       myString+= ".cc";
       System.out.println(myString);
   }
}
์ผ๋ฐ˜์ ์œผ๋กœ Java๋Š” ์‚ฌ์šฉ์ž ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์˜ค๋ฒ„๋กœ๋“œ ์ž‘์—…์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ ์ด ๋‘ ์—ฐ์‚ฐ์ž๋Š” ์˜ค๋ฒ„๋กœ๋“œ๋œ ์ƒํƒœ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. + ์—ฐ์‚ฐ์ž ๋‚ด๋ถ€์— concat() ์ด ์ˆจ๊ฒจ์ ธ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๋‹ค๋ฅธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Java ํ”„๋กœ๊ทธ๋žจ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด StringBuilder๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๊ณ  ํ•ด๋‹น append() ๋ฉ”์„œ๋“œ๊ฐ€ ์‚ฌ์šฉ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Java Compiler๋Š” "+" ์—ฐ์‚ฐ์ž๋ฅผ ๋ณด๊ณ  ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๊ธฐ๋ณธ ์œ ํ˜•์ด ์•„๋‹Œ ๋ฌธ์ž์—ด์ž„์„ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ concat์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

public class StringTest2 {

   public static void main(String[] args) {

       String hello = "hello";
       String world = " world!";

       String helloworld = (new StringBuilder().append(hello).append(world).toString());
       System.out.println(helloworld);
       //this is the same as:
       String result = hello + world;
   }
}

์—ฐ๊ฒฐ(0) ๋˜๋Š” + ?

๋ฌธ์ž์—ด์„ ํ•œ ๋ฒˆ๋งŒ ๋ณ‘ํ•ฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ concat() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒฝ์šฐ์—๋Š” + ๋˜๋Š” Stringbuffer / StringBuilder ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค . ๋˜ํ•œ + ์—ฐ์‚ฐ์ž๋Š” ์œ ํ˜•์„ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ˆซ์ž์ด๊ณ  ๋‘ ๋ฒˆ์งธ๊ฐ€ ๋ฌธ์ž์—ด์ด๋ฉด ์ข…๋ฃŒ์‹œ ๋ฌธ์ž์—ด์„ ์–ป์Šต๋‹ˆ๋‹ค. ์˜ˆ:

public class StringConcat {
   public static void main(String[] args) {
       int myInt = 5;
       String myString = " days";

       System.out.println(myInt + myString);
       boolean b = (myInt + myString) instanceof String;
       System.out.println(b);
   }
}
instanceof๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ (myInt + myString) ์ด ๋ฌธ์ž์—ด ์ธ์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค . ๋‹ค์Œ์€ ์ด ํ”„๋กœ๊ทธ๋žจ์˜ ์ถœ๋ ฅ์ž…๋‹ˆ๋‹ค.
5์ผ ์ฐธ
๋˜ํ•œ + ์—ฐ์‚ฐ์ž์™€ concat()์€ ๋ฌธ์ž์—ด ์ค‘ ํ•˜๋‚˜๊ฐ€ null์ธ ๊ฒฝ์šฐ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. + ๋˜๋Š” += ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ํ•˜๋‚˜ ๊ฐ€ ๋ฌธ์ž์—ด์ด๋ฉด ์ด๋ฏธ ๋งํ–ˆ๋“ฏ์ด ์œ ํ˜• ๋ณ€ํ™˜์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. null์—๋„ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ฌธ์ž์—ด์„ ์–ป์Šต๋‹ˆ๋‹ค.

public class StringConcat {
   public static void main(String[] args) {

       String myString = "book ";
       System.out.println(myString + null);
       System.out.println((myString + null) instanceof String);
   }
}
์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋„์„œ null ์ฐธ
๋™์ผํ•œ ์ž‘์—…์— concat() ๋ฉ”์„œ๋“œ๋ฅผ ์ ์šฉํ•˜๋ฉด NullPointerException ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค .

public class StringConcat {
   public static void main(String[] args) {

       String myString = "book ";
       System.out.println(myString.concat(null));

   }
}
์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
StringConcat.main(StringConcat.java:6)์˜ java.base/java.lang.String.concat(String.java:1972) ์Šค๋ ˆ๋“œ "main" java.lang.NullPointerException์˜ ์˜ˆ์™ธ
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION