안녕하세요. 코딩개입니다. 이번 시간에는 java에서 string에 들어있는 문자들을 어떻게 hex 값으로 보는지 알아보도록 하겠습니다. 저번 시간에 replace랑 replaceAll이랑 비교한 부분 기억하실 거에요. 출력은 같아 보이는데, 사실 다른 문자열이라고 했습니다. 왜? 출력이 되지 않는 문자가 포함되어 있기 때문이에요. 정말 그것이 포함되어 있는지 디버그를 해 보기 위해서 string에 저장 되어 있는 문자들을 차례대로 hex로 출력해 봅시다. Format 문자열에 대한 설명을 봅시다. Conversions 단락을 보면, 몇 가지 카데고리로 나뉜다고 되어 있습니다. General은 어떠한 type도 받아들인다는 것을 의미합니다. 3번의 Numeric은 몇 개의 type만 잡는데요. Integ..
레퍼런스/예제 검색 결과
안녕하세요. 이번 시간에는 java의 replace와 replaceAll에 대해서 간단하게 짚고 넘어가도록 하겠습니다. 사실 저는 문자 c1을 문자 c2로 바꾸기 위해서 replaceAll을 주로 이용하는 편이였어요. 그런데, 아시다시피 replaceAll은 내부에서 정규식을 위한 트리를 만들어서 생각보다 느려요. 모든 문자 c1을 c2로 바꾸는 메서드는 없냐? 라고 물으신다면, replace가 있어요. 예제만 간단하게 보겠습니다. "maple story 205"가 있어요. 저는 공백을 '|'로 바꾸려고 해요. 그러면 oldChar는 ' '가 되고, newChar는 '|'가 되겠죠? replace의 1번째 인자에는 ' '를, 2번째 인자에는 '|'을 넣으면 되어요. 실행 결과는 위와 같아요. 그런데 왜 ..
leading zero, leading space 이런 문제들은 string을 다루다 보면 한 번 정도는 보실 문제들입니다. 10개의 width에 string 값을 오른쪽 정렬을 하고 남은 공간들은 space로 채운다고 했을 때, 이렇게 코딩했었습니다. 예를 들어 string이 길이가 10 이하라고 해 보겠습니다. cho를 오른쪽 정렬하면 " cho"가 되고, 왼쪽으로 정렬하면 "cho "가 됩니다. 이걸 저는 padding 길이를 구하고 그 길이만큼 padding이 되는 문자열을 만든 다음에 왼쪽, 혹은 오른쪽에 붙이는 식으로 하였습니다. repeated는 캐릭터 하나와 얼마만큼 반복할 것인지를 나타내는데요. 내부에는 그냥 StringBuilder 등으로 이어 붙여버립니다. 결과는 요래 잘 나옵니다. ..
java에서 map, set 계열을 다룰 때 전체 원소들을 순회해야 할 때가 있습니다. 이 때 어떻게 해야 하는지 간단하게 알아보겠습니다. 보통 map 계열 중에서는, treemap과 hashmap의 사용 빈도가 꽤 높은 편인데요. 이는 hash 계열은 equal 쿼리에, tree 계열은 range 쿼리에 매우 유리한 구조이기 때문입니다. 그리고 저는 농담처럼 자바에서는 TreeMap만 알고 있으면 풀 수 있는 코딩테스트 문제가 상당히 많을 거다. 라는 말도 하는데요. equal 쿼리도 성능이 그렇게 썩 나쁜 편이 아니기 때문입니다. 로그 복잡도로 찾아도 나름 빠르기도 하고요. 먼저, Map에서의 Key, Value 쌍을 모두 순회하기 위해서는, keySet을 이용해야 합니다. 이것은 Map에 있는 ke..
int to string과, string to int는 것은 생각보다 코딩 테스트에 상당히 자주 보이는 문제입니다. 물론 단독으로 출제되는 경우는 거의 없다시피 하고, 구현 문제의 중간 단계에서 필요한 경우가 왕왕 있습니다. 언젠가 정리해 두려고 했는데, 지금에 와서야 정리하게 되네요. 먼저, string을 int로 바꾸는 것은 Integer의 parseInt로 합니다. string을 long으로 바꾼다면, Long의 parseLong으로 하겠죠. 생각보다 parseXXX를 자주 쓰게 될 겁니다. 역으로, int를 String으로 바꾸기 위해서 Integer의 toString을, long을 String으로 바꾸기 위해서 Long의 toString을 이용합니다. 이것을 그림으로 그려보면 아래와 같아요. 어..
최근댓글