ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] char배열과 String 클래스의 차이는?
    Language/Java 2020. 3. 31. 15:08
    728x90
    반응형

    지금까지 여러 문자, 즉 문자열을 저장할 때 String타입의 변수를 사용했다. 사실 문자열이라는 용어는 '문자를 연이어 늘어놓은 것'을 의미하므로 문자배열인 char배열과 같은 뜻이다. 

     

     

    자바에서는 char배열이 아닌 String클래스를 이용해서 문자열을 처리하는 이유는 무엇일까?

    String클래스는 char배열에 기능(메서드)을 추가한 것이다.

    char배열과 String클래스의 한 가지 중요한 차이가 있는데, String객체(문자열)는 읽을수만 있을 뿐 내용을 변경할 수 없다는 것이다. 

     

    1
    2
    3
    4
    5
    6
    7
    public class Test {
        public static void main(String[] args) {
            String str = "Java"
            str = str + "8";
            System.out.println(str);    // Java8
        }
    }
     
     

    위처럼 String값이 바뀌는 것 같지만 새로운 문자열이 생겨 str이 새로운 주소값을 가르키는 것이다.

     

     

    그리고 String문자열에서 하나의 문자만 꺼내오고 싶을 때 charAt이라는 메소드를 사용한다. 

    다시말하면, charAt메소드는 문자열에서 지정된 index에 있는 한 문자를 가져온다.

    배열에서 "배열이름[index]"로 index에 위치한 값을 가져오는 것과 같다고 생각하면 된다. 

    1
    2
    3
    4
    5
    6
    public class Test {
        public static void main(String[] args) {
            String str = "Hello";
            char ch = str.charAt(1);  // e
        }
    }
     
     

     

     

     

    char배열과 String클래스의 변환 

    1
    2
    3
    4
    5
    6
    7
    public class Test {
        public static void main(String[] args) {
            char[] chArr = {'A''B''C'};
            String str = new String(chArr);   // char배열 -> String
            char[] tmp = str.toCharArray();   // String -> char배열 
        }
    }
     
     

     

    반응형

    댓글

Designed by Tistory.