생각나는 방법은 두가지 정도이다.
일단 둘다 해봐야겠다..
첫번째 방법은 인덱스를 사용하려고 형변환도 많이 해야하고 굳이 배열두개도 만들어줘야 하기때문에 별로인 것 같다. 두번째 방법으로 찾아봐야겠다. 일단 아스키 코드표를 찾고..
source : https://shaeod.tistory.com/228
일단 떠오르는 순서는 이렇다.
s
가 String
형태이기 때문에 chunked()
함수를 사용하여 나눈다.chunked()
로 나눈 숫자들을 toInt()
로 캐스팅한 다음 A,a
로 돌아오도록 한다.toString()
으로 캐스팅한 뒤 answer
에 더해준다.레고레고
이대로 코드를 짜봤더니 마지막 toString()
해줬을때 숫자그대로 문자가 되서 출력된다. 생각을 잘못했다. String
이 아니라 Char
형태로 코드를 짰어야 아스키 코드에 해당하는 숫자를 문자로 바꿨을때 문자로 제대로 출력이 되는것이었다. chunked()
함수를 쓸 필요도 없고 toCharArray()
를 이용해서 인덱스에 따라 연산하면 되는 것 이었다.
그리고 추가로 공백일때의 처리를 안해줘서 s.toCharArray()[i]
가 ' '
일때는 answer
에 ' '
를 그대로 더해주는 식으로 해결했다.
테스트를 해보자~~
대참사 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
이럴때가 제일 당황스럽다. 어디가 잘못된 것인지 찾기가 너무 힘들다. 질문하기에 들어가서 사람들의 경우를 좀 살펴야겠다...
문제를 찾았다!! 입력받은 문자가 대문자인데(65 < ASCII < 90) n
을 더해줬을때 소문자 영역 (97 < ASCII < 122)로 들어가는 경우가 문제였다. 따로 예외로 만들어주니 해결되었다!!