본문 바로가기

초보개발자의 작업노트

자바 String 문자추출 연습

반응형

이 문제는 자바 수업에서 자바 JDK의 API 중 String클래스를 배우면서 선생님께서 우리에게 코딩을 해보라고 요구한 '문자추출'에 대한 연습문제이다.

이 문제에는 문자추출뿐만 아니라 문자열을 바이트코드로 변환해 다시 String으로 변환해 글자를 뽑는 다소 복잡한 과정이 포함되어 있다.

나는 이 문제를 받고는 알파벳을 정말 여러가지 다양한 방법으로 기술을 해 보았다.

스트링(String) '문자열'로 쳐보기도 하고 '배열'로 표현해 보기도 하는 등, 엄청 많은 시간을 초반에 써버리고 많았다.

그래서 '내가 알파벳 연습을 하나?' 하는 생각이 들 정도였다.ㅋㅋ

그러나 아무리 선생님이 이런 알파벳배열을 작성하라고 이 문제를 내주시지는 않았겠다는 판단을 하고는 과감하게 배열타입은 지웠다.

이건 나중에 알았지만, 아주 잘한 판단이다.

그렇지만, 스트링 문자열은 어쩔 수가 없다.ㅠㅠ

이걸 선택해 바이트(byte) 타입 배열로 고쳐서는 다시 스트링타입으로 생성을 했다.

여기까지는 에러없이 잘 되고 있다.

그러고는 예외처리를 하기로 했다.

예외처리를 하는 동안에도 에러없이 잘 진행되고 있다.

이것만으로도 나는 엄청 만족스러웠다.

그러나 시간이 없다.

나는 다 끝을 내지 못한 채 여기서 멈춰야 했다.

그러나 나의 똑똑한 동료들은 문제를 다 푼 듯 하다.

이건 전직 프로그래머인 동료의 코딩이다.

이 친구는 대문자 알파벳만 쳐 넣고 대문자를 소문자로 변환해주는 'toLowerCase' 방법을 이용하기도 했다.

나는 이걸 보고, "맞아! 이런 방법도 있었지!" 하고 감탄을 했다.

그러나 이 친구는 계속해서 대문자는 소문자로, 소문자는 대문자로 바꿔주는 방법을 활용하면서 문자를 추출하고 있었다.

이 방법은 너무 복잡헤서 그다지 내 마음에 들지는 않는다.

이건 또 다를 프로그래머 동료의 작품!

이 친구는 똑똑하게도 26글자의 알파벳을 다 쓰지 않고 문자A와 a에 해당하는 바이트 코드넘버를 알아내서 그걸로 각기 다른 두가지 배열을 만들었다.

그러고는 각각 소문자, 대문자 알파벳 속에서 'for문'을 이용해 요구한 글자를 추출했다. 

이건 엄청 간단하면서도 깔끔한 방법이다. 

선생님은 다르게 작성한 몇가지 코딩들을 보여주셨다.

그리고 선생님이 작성하신 것도 보여주셨다.

선생님도 알파벳을 다 기술하지 않고, 배열로 기술하셨다.

우선 대문자 문자배열을 for문으로 원하는 글자가 나올 때까지 돌린다.

그렇게 생성된 글자를 name이란 변수 이름을 정해서 프린트한다.

소문자도 똑같은 방식으로 추출한다.


완성했더라면, 이들 틈에 끼어 내 코딩도 소개가 되었을 것이다.

try~catch구문을 이용한 예외처리 방법으로도 할 수 있다는 설명을 선생님이 이 문제를 다 풀고 나서 해 주셨다.

그러나 내가 그걸 완성을 못했으니...ㅠㅠ

다른 사람들의 코딩을 보면서 내가 하려고 했던 걸 비춰보는 건 배움에 많은 도움이 된다.




반응형