본문 바로가기

언어 기초/JAVA

[자바의정석 | Chapter 05 배열] String배열 예제12~15

1. 학습목표

String배열에 대해 이해할 수 있다.

책에 있는 배열파트 예제를 모두 다루어보겠다.

 

2.필요 개념 문장정리

  • String[] name = new String[3];
    3개의 String타입의 참조변수를 저장하기 위한 공간이 마련되고 참조형 변수의 기본값은 null이므로 각 요소의 값은 null로 초기화 된다.
  • 기본형 배열이 아닌 참조형 배열의 경우 배열에 저장되는 것은 객체의 주소이다. 
  • string[] name = new String[3];  //길이가3인 String배열을 생성
    name[0] = "Kim";
    name[1]= "Park";
    name[2] = " Yi" ;

출처- 자바의 정석

  • String클래스는 char배열에 메서드를 추가한 것이다.

출처 - 자바의 정석

  • 기본형 변수의 값을 비교하는 경우 ==연산자를 사용하지만 문자열의 내용을 지교할 때는 equals()를 사용해야 한다. 이 메서드는 대소문자를 구분한다.

 

 3. 코드작성

class ArrayEx12 {
	public static void main (String[] args) {
		String[] names = {"Kim", "Park", "Yi"};

		for(int i = 0; i < names.length; i++)
			System.out.println("names["+i+"]:" + names[i]);

		Sring tmp = names[2]; // 배열 names의 세번째 요소를 tmp에 저장
		System.out .printin("tmp:"+tmp):
		names[0] = "Yu"; // 배열 names의 첫번째요소를 "Yu"로 변경

		for (String str : names) // 향상된 for문 
			System.out.println(str);
	}
 }       

실행결과
names[0]:Ki m 
names[1]:Park 
names[2]:Yi
Yu
Park 
Yi

 

 

class ArrayEx13 {
	public static void main(Srtnig[] args) {
    	char[] hxe = {'C', 'A', 'F', 'E'):

		String[] binaty = {"0000", "0001", "0010", "0011"
        				, "0100", "0101", "0110", "0111"
                        , "1000", "1001", "1010", "1011"
						, "1100", "1101", "1110", "1111"}; 
                        
		String result = "";

		for(int = 0; i < hex.length; i++) {
			if(hex[i] >= '0' && hex[i] <= '9') {
				result += binary(hex[i]-'0']; // '8'-'0'의 결과는 8이다. 
			} else { // A~F이면
				result += binary[hex[i]-'A'+10]; //'C'-'A'의결과는2
            }    
		} 
			System.out.println("hex:" + new String(hex)); 
            System.out.println("binary:" + result);
           
실행결과 
hex:CAFE 
binary:110010101011111110

16진수를 2진수로 변환하는 예제이다. 

class ArrayEx14 {
	public static void main(String[] agrs) {
		String src= "ABCDE";
		for(int i = i0; i < src.length();i++){
			char ch = src.charAt(i); // src의 i번째 문자를 ch에 저장
			System.out.println("src.charAt ("+i+"):"+ ch); 
        }    // String을char[]로 변환
			char[] chArr = src.toCharArray();
			// char배열(char[])을 출력 
            System.out.println(chArr);
    }    
}

실행결과
src.charAt(0):A
src.chaArt(1):B
src.chaArt(2):C
src.chaArt(3):D
src.chaArt(4):E
ABCDE

String클래스의 charAt(int idx)을 사용하는 방법을 보여주는 예제이다. charAt(int idx)은 문자열 중에서 idx번쨰 위치에 있는 문자를 반환한다.

class ArrayEx15 (
	public static void main(String[] args) {
    	String source = "SOSHELP";
		String[] morse = {
       	    "...",  // A
            "---",  // B
            "...",  // C
            "-..",  // D
            ".",    // E
            "..-.", // F
            "--.",  // G
            "....", // H
            "..",   // I
            ".---", // J
            "-.-",  // K
            ".-..", // L
            "--",   // M
            "-.",   // N
            "---",  // O
            ".--.", // P
            "--.-", // Q
            ".-.",  // R
            "...",  // S
            "-",    // T
            "..-",  // U
            "...-", // V
            ".--",  // W
            "-..-", // X
            "-.--", // Y
            "--.."  // Z
        };
	String result = "";

	for(int i = 0; i < source.length(); i++){
    	result += morse[source.charAt(i)-'A'];
        }
		
        System.out.println("source:"+ source); 
        System.out.println("morse:"+ result);
     }    
}

실행결과
source:SOSHELP
morse:...---...|.... . .-.. .--.

문자열을 모르스부호로 변환하는 예제이다.

String의 문자의 개수는 length()를 통해서 얻을 수 있고,  charAt(int i )메서드는 String의 i번째 문자를 반환한다.

for문의 조건식에 length()를 사용하고  charAt(int i)를 통해서 source에서 한 문자씩 차례대로 읽어올 수 있다.

4. 마무리

String배열 관련 메서드를 학습할 수 있었다.

반복문에 charAt()메서드를 사용하여 배열값을 변화하는 것을 이해할 수 있었다.