안녕하세요. 코딩개입니다. 이번 시간에는 java에서 string에 들어있는 문자들을 어떻게 hex 값으로 보는지 알아보도록 하겠습니다. 저번 시간에 replace랑 replaceAll이랑 비교한 부분 기억하실 거에요. 출력은 같아 보이는데, 사실 다른 문자열이라고 했습니다. 왜? 출력이 되지 않는 문자가 포함되어 있기 때문이에요. 정말 그것이 포함되어 있는지 디버그를 해 보기 위해서 string에 저장 되어 있는 문자들을 차례대로 hex로 출력해 봅시다. Format 문자열에 대한 설명을 봅시다. Conversions 단락을 보면, 몇 가지 카데고리로 나뉜다고 되어 있습니다. General은 어떠한 type도 받아들인다는 것을 의미합니다. 3번의 Numeric은 몇 개의 type만 잡는데요. Integ..
string 검색 결과
leading zero, leading space 이런 문제들은 string을 다루다 보면 한 번 정도는 보실 문제들입니다. 10개의 width에 string 값을 오른쪽 정렬을 하고 남은 공간들은 space로 채운다고 했을 때, 이렇게 코딩했었습니다. 예를 들어 string이 길이가 10 이하라고 해 보겠습니다. cho를 오른쪽 정렬하면 " cho"가 되고, 왼쪽으로 정렬하면 "cho "가 됩니다. 이걸 저는 padding 길이를 구하고 그 길이만큼 padding이 되는 문자열을 만든 다음에 왼쪽, 혹은 오른쪽에 붙이는 식으로 하였습니다. repeated는 캐릭터 하나와 얼마만큼 반복할 것인지를 나타내는데요. 내부에는 그냥 StringBuilder 등으로 이어 붙여버립니다. 결과는 요래 잘 나옵니다. ..
안녕하세요. 오랫만에 뵙겠습니다. 간혹 가다가 백준에서 문제를 풀다 보면, 문자열이 x개 나오면 이 문자열들 사이에 특정 문자를 넣어야 하는 경우가 있습니다. 예를 들어, 테스트 케이스 문제라면 개행 문자를 넣는 경우가 있을 겁니다. python에서는 이러한 기능을 join으로 매우 쉽게 처리할 수 있었어요. 예를 들어, 이런 식으로 쓰면 출력은 어떻게 될까요? 아시다시피 'my name is cho'가 출력이 됩니다. 사용법도 그리 어렵지 않아요. 그냥 Iterable한 객체를 넘겨주면, separator가 element 사이에 끼어들어가 버리게 됩니다. 저 예제에서는 list를 넘겨주었고, Separator로 ' '을 넘겨주었기 때문에, 원소들 사이에 공백이 하나 들어갑니다. 그래서 my name i..
java 11부터 String에 strip 메소드를 지원합니다. leading, trailing 화이트 문자들을 제거해 줍니다. Character.isWhitespace가 참인 문자들을 제거해 줍니다. 공백이라고 생각되는 문자들을 제거하지 못하는 경우도 있음에 유의하세요. 밑에서 다시 이야기 해 드리겠습니다. 이 글을 읽으시기 전에 trim 메서드에 대해서 간단하게 이해하시면 좋습니다. [관련글] trim 메서드에 대해 제대로 알아봅시다. 먼저, Character.isWhitespace가 참인 codepoint를 모두 출력해 보겠습니다. 9, 10, 11, 12, 13, ... 총 10 + 15 = 25개입니다. 이 중 코드 포인트가 32 이하인 것의 갯수는 10개입니다. 32인 것은 공백입니다. 이제 ..
string padding 처리는 많이 들어보셨을 겁니다. 예를 들어 제가 낸 문제 중에 수인 분당선 문제도 답이 9:0:0인 경우에 09:00:00으로 출력하라고 했었습니다. 앞에 0을 padding을 해서 2자리로 맞추도록 한 것입니다. 그리고 오늘 새로 추가된 이 문제 역시 padding이 들어가 있습니다. 이 두 문제의 공통점은 left padding이였다는 점입니다. 제가 개최한 2회 코테의 1번 문제 또한, string을 long long으로 떨궈내면 여유롭게 해결을 하실 수 있는데요. 문자열을 long long으로 압축하는 방식을 2번 문제의 제 솔루션과 동일하게 하면 당연하게도 틀렸습니다를 보게 됩니다. 왜일까요? 해당 솔루션에 있는 압축 방식을 잘 읽어보면 문자열의 길이가 커질수록 숫자가..
최근댓글