이번 시간에는 파이썬에서 구분자가 여러개일 때 split를 어떻게 쓰는지 알아봅시다. 문자열이 주어질 때, ,이나 $이나 .이 오면 이것을 구분자로 취해야 합니다. 예를 들어서, 예시 문자열은 123,..,4$567alpha일 때, split를 한 결과는 123, 4, 567alpha 순서대로 나와야 합니다. 단순하게, split만 쓰기 위해서는 구분자들을 하나의 구분자로 통일시키기만 하면 됩니다. 이 패턴은 실무에서 문자열 처리 할 때 자주 쓰이는지는 모르겠습니다. 그러나, 코딩 테스트에서는 심심찮게 쓰이는 스킬이므로 알아두시면 도움이 매우 많이 됩니다. 플로우를 볼까요? .과 ,과 $를 기준으로 분리하라고 했는데요. 이런 문제를 multiple delimeter라고 해요. 구분자다. 라는 정보가 사라..
구분자 검색 결과
c에서 multiple token을 처리하기 위해서 strtok을 이용할 수 있습니다. 자바는 split 로 매우 간단하게 처리할 수 있습니다. 그리고 이 메서드는 정규 표현식을 이용합니다. c++에서는 어떻게 하면 좋을까요? 자바의 split가 정규 표현식을 쓴다는 것에 착안하시면 무엇을 써야 할 지 쉽게 알 수 있습니다. 문자열 s를 ,과 .를 구분자로 나누는 예제를 생각해 보겠습니다. 먼저, delimeter는 . 아니면 ,입니다. 따라서, 이를 정규 표현식으로 표현하면 [.,]입니다. 이것은 scan 집합이 . 아니면 ,라는 의미입니다. 그런데, 이들이 한 번 이상 나오면 어떨까요? 예를 들어, 문자열 ",,"이나, "..,"는 어떤가요? 이런 경우도 match가 되게 하려면 regex의 패턴이 ..
네이버 블로그에 올린 옛날 글에 질문이 하나 달렸습니다. 그 질문에 대한 답변을 해 보겠습니다. java에서 어떠한 구분자를 기준으로 나누기 위해서 StringTokenizer를 쓰는 방법이 있습니다. 그런데, split라는 메서드도 존재합니다. 이 둘은 언제 잘 쓰면 좋을까요? 그리고 토크나이저를 쓰는 게 항상 올바른 선택이고, 항상 빠를까요? StringTokenizer의 내부를 보겠습니다. 먼저 토크나이저의 생성자를 보면, 3개의 인자를 가지는 생성자를 호출한다는 것을 알 수 있습니다. 여기에서, delimiters, currentPosition, newPosition 등을 setting 하는 것을 알 수 있습니다. hasSurrogate 라는 boolean 변수도 있다는 것을 알 수 있습니다. 그..
최근댓글