ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ch5 자바 배열] String 배열의 생성과 특징
    프로그래밍 언어/JAVA 2022. 6. 9. 23:04
    String 배열의 선언과 생성

    배열의 타입이 String인 경우에도 int 배열의 선언과 생성 방법은 다르지 않다. 예를 들어 개의 문자열을 담을 수 있는 배열을 생성하는 문장은 다음과 같다. 

    String [] name = new String[3]; // 3개의 문자열을 담을 수 있는 배열을 생성한다.

     

    3개의 String 타입의 참조변수를 저장하기 위한 공간이 마련되고 참조형 변수의 기본값은 null이므로 각 요소의 값은 null로 초기화된다. 아래의 표는 변수의 타입에 따른 기본값이다.

    자료형 기본값
    boolean false
    char '\u0000'
    byte, short, int 0
    long 0L
    float 0.0f
    double 0.0d 또는 0.0
    참조형 null

     

     

    String 배열의 초기화

    초기화 역시 int배열과 동일한 방법으로 한다.

    String name = new String[3]; //길이가 3인 String 배열을 생성
    name[0] ="kim";
    name[1] = "park";
    name[] ="yi";

    String[] name = new String[] {"kim", "park", "yi"};
    String[] name = {"kim", "park", "yi"}; //new String[]을 생략할 수 있다. 

     

    ※ 예제 1번 ※

    package ch5;
    
    import java.util.Arrays;
    
    public class Ex5_6 {
    
    	public static void main(String[] args) {
    		String [] name = {"kim", "park", "yi"};
    		for(int i=0; i <name.length; i++) {
    			System.out.println("names["+i+"] = " +name[i]);
    		}
    		
    		String tmp = name[2];
    		System.out.println("tmp="+tmp);
    		name[0] = "jung";//값 변경 즉) 요소의 변경이 가능하다.
    		
    		System.out.println(Arrays.toString(name));
    
    	}
    
    }

    예제 1번 출력값

     

     

    String 클래스

    지금까지 여러 문자, 즉 문자열을 저장할 때 String 타입의 변수를 사용했다. 사실 문자열이라는 용어는 '문자를 연이어 늘어놓은 것'을 의미하므로 문자배열인 char 배열과 같은 뜻이다. 그런데 자바에서는 char 배열이 아닌 String 클래스를 이용해서 문자열을 처리하는 이유는 String 클래스가 char배열에 여러 가지 기능을 추가하여 확장한 것이기 때문이다. 그래서 char배열을 사용하는 것보다 String 클래스를 사용하는 것이 문자열을 다루기 더 편리하다. 

     

    C언어에서는 문자열을 char배열로 다루지만, 객체지향언어인 자바에서는 char배열과 그에 관련된 기능들을 묶어서 클래스에 정의한다. 객체지향개념이 나오기 이전의 언어들은 데이터와 기능을 따로 다루었지만, 객체지향언어에서는 데이터와 그에 관련된 기능을 하나의 클래스에 묶어서 다룰 수 있게 한다. 즉) 서로 관련된 것들끼리 데이터와 기능을 구분하지 않고 함께 묶는 것이다. 여기서 말하는 기능은 함수를 의미하며, 메서드는 객체지향언어에서 '함수' 대신 사용하는 용어일 뿐 함수와 같은 뜻이다. char배열과 String 클래스의 한 가지 중요한 차이가 있는데, String객체(문자열)은 읽을 수만 있을 뿐 내용을 변경할 수 없다는 것이다.

    String str ="Java";
    str = str + "8"; //"Java8"이라는 새로운 문자열이 str에 저장된다.
    System.out.print(str); // "Java8"

     

     

    String 클래스의 주요 메서드

    String 클래스는 상당히 많은 문자열 관련 메서드들을 제공하지만 이번 포스팅에선 몇가지만 알아보도록 하자.

    메서드 설명
    char charAt(int index) 문자열에서 해당 위치(index)에 있는 문자를 반환한다.
    int length() 문자열의 길이를 반환한다.
    String substring(int from, int to) 문자열에서 해당 범위(from ~ to)의 문자열을 반환한다. (to는 포함 안 됨)
    boolean equals(Object obj) 문자열의 내용이 같은지 확인한다. 같으면 true, 다르면 false
    char[] toCharArray()  문자열을 문자배열(char[])로 변환해서 반환한다.

     

    charAt메서드는 문자열에서 지정된 index에 있는 한 문자를 가져온다. 배열에서 '배열이름[index]'로 index에 위치한 값을 가져오는 것과 같다고 생각하면 된다. 배열과 마찬가지로 charAt메서드의 index값은 0부터 시작한다. 

    String str = "ABCDE";
    char ch = str.charAt(3); //문자열 str의 4번째 문자 'D'를 ch에 저장

     

    substring()은 문자열의 일부를 뽑아낼 수 있다. 주의할 것은 범위의 끝은 포함되지 않는다는 것이다. 예를들어 index의 범위가 1~4라면 4는 범위에 포함되지 않는다. 

    String str = "012345";
    String tmp = str.substring(1,4); //str에서 index범위 1~4문자들을 반환
    System.out.println(tmp); //"123"이 출력된다.

     

    반응형

    댓글

Designed by Tistory.