현 블로그는 모바일 환경이 아닌 PC환경에 최적화 되어있습니다.

 Mir의 운영환경



public class Test5_3 {

public static void main(String[] args) {



//1. 아래 공식은 String의 문자열을 하나씩 나누어 char형 배열로 옮기는 공식이다.

String st = "ABCDE";

char ch[] = new char[st.length()];

for(int i=0; i < st.length(); i++){

ch[i] = st.charAt(i);

System.out.println("src2["+ i+ "] = " +ch[i]);

}

위 공식을 이용하여서 입력하는 String값을 

모스부호로 변환하여 출력하는 프로그램을 짜보세요.

--tip1. 아래 A~Z까지의 모스부호입니다. 

   ".-", "-...", "-.-." ,"-..", ".",

   "..-.", "--.", "....", "..", ".---",

   "-.-", ".-..", "--", "-.", "---",

   "--.", "--.-", ".-.", "...", "-",

   "..-", "...-", ".--", "-..-", "-.--",

   "--.."

--tip2. A-A = 0입니다. B-A는 1이 되는겁니다.

--ex String값에 SOSHELP를 넣어 출력하면

... --- ... .... . .-.. .--. 으로 출력됩니다.








String st2 = "SOSHELP";

//SOSHELP를 모스부호로 출력시켜보자.

char ch2[] = new char[st2.length()];

//ch2배열은 st2 문자열의 길이만큼 생성된다.

//현재 SOSHELP가 st2에 들어가있으니 저장공간을 7개 생성하게 된다.

//length()는 String형 변수 문자열의 길이를 나타내며

//length는 배열의 크기를 나타낸다. 이름은 비슷하지만 기능은 다르니 알아두자.

String[] morse = {".-""-...""-.-." ,"-.."".",

   "..-.""--.""...."".."".---",

   "-.-"".-..""--""-.""---",

   "--.""--.-"".-.""...""-",

   "..-""...-"".--""-..-""-.--",

   "--.."};

//String형 배열 morse를 선언하였다. 필자가 A부터 Z까지 모스부호를 다 적어놨다.

//이제 mores[0]은 A의 모스부호를 나타낼것이며

//mores[1]은 B의 모스부호 morse[2]는 C.. 이렇게 계속 나갈것이다.

for(int i=0; i < st2.length(); i++){  //조건식을 ch2.length로 바꾸어도 상관없다.

ch2[i] = st2.charAt(i); 

//charAt(i)는 문자열에서 i+1번째 문자를 나타낸다.

//charAt(0)이면 첫번째 문자를 나타내고 

//charAt(1)이면 두번째 문자 이렇게 순서대로 나타낸다.

//현재 st2의 charAt() 이기때문에

//charAt(0)은 S

//charAt(1)는 O를 나타낼것이다.

//그럼 charAt(0)을 ch2[0]에 대입하는것이니

//ch2[0] = 'S'

//ch2[1] = 'O'

//ch2[2] = 'S' 이렇게 저장될것이다.

System.out.print(morse[ch2[i] - 'A']);

//제일 핵심적인 부분이다.

//morse[ ]안에 0,1,2가 들어갈때마다.

//A,B,C를 나타내는 모스부호가 출력될것이다.

//그럼 morese[ ]안을 살펴보자

//ch[i] - 'A'라고 들어가 있다.

//현재 ch배열에는 순서대로 SOSHELP라는 문자가 들어가있다.

//i가 0이라고 생각할때 'S' - 'A'가 된다.

//문제에 'A' - 'A' = 0 이라고 팁을 준것이 기억나는가

//그럼 'S' - 'A'는 무엇일까? 

//18이 된다. (궁금하면 System.out.println('S'-'A')를 해보아라)

//그럼 morse[18]을 출력하게 되며

//출력값으로 ... 이 처리 된다.

//이런방식으로 ch2[0]부터 시작하여 배열이 끝날때까지 출력되는것이다.

System.out.print(" ");

//모스부호를 구분하기 위한 스페이스값

}

}

}






------------------------------------------------------------------------------------
본 블로그의 글을 퍼가실때 꼬릿말, 퍼가시는곳 주소를 꼭 남겨주세요.

출처 꼭 기재해주시고요. 상업적인 용도의 이용은 절대 금합니다.

혹 프린트를 할 경우 블로그주소와 함께 프린트 해주세요.
허락을 맡지 않고 무단도용을 할경우 법적인 제제가 있을수도 있습니다.
(전 분명히 경고했습니다. 합의같은거 안합니다.)
그리고 혹 무단도용한것을 보신분은 신고해주시면 사례금 챙겨 드리겠습니다.
-----------------------------------------------------------------------------------

'Java > Java_A' 카테고리의 다른 글

Chapter5-2 최대값 최소값 구하기 _&A  (0) 2011.09.21
Chapter5-1 배열의 이해 _&A  (0) 2011.09.21
Chapter4-4 while문의 응용 -&A  (0) 2011.09.21
Chapter4-3 반복문과 조건문 _&A  (0) 2011.09.21
Chapter4-2 별출력하기 _&A  (0) 2011.09.21

+ Recent posts