콘텐츠로 건너뛰기
Home » string

string

Julia 문자열 다루기

Julia에서 문자열은 String 타입으로 정의되어 있으며, 내부적으로 UTF8로 인코딩되는 유니코드 문자열을 지원한다. 문자열은 일련의 유니코드 문자들로 구성되며 불변한 값이다. Julia에서는 String 외에 단일 문자를 표현하는 Char 타입이 존재하며, 리터럴 문법 역시 문자열과 문자가 구분된다. (문자열은 겹따옴표, 단일 문자는 홑따옴표를 사용한다.) 기본 리터럴 문법 "string"과 같이 겹따옴표를 사용한다. 여러 줄에 걸쳐지는 문자열은 """…"""로 둘러쌀 수 있다. 파이썬도 이런 3중 따옴표를 사용하는데, 줄리아가 파이썬과 다른 점은 멀티라인 문자열을 쓸 때 들여쓰기가 생기더라도 닫는 따옴표도 들여쓰기 되어 있다면 그 들여쓰기를 무시한다는 점이다. 글자… 더 보기 »Julia 문자열 다루기

(Swift) Swift의 String타입 기초 – 02. 문자열 조작

목차

  1. 문자열 생성하기
  2. * 문자열 조작하기
  3. 활용

문자열의 기본 조작

문자열 데이터를 다룰 때 가장 많이 쓰며, 또 중요한 스킬은 바로 문자열을 조작하는 것이다. 문자열 내의 특정 글자나 부분 문자열을 찾거나, 문자열에 어떤 글자를 추가, 삽입, 삭제, 변경하고, 문자열을 잘라서 나눈다던지 하는 등의 처리는 “간단한” 프로그램을 작성할 때 아주 많이 쓰이는 가장 기본적인 테크닉들이다.
또한 중요한 부분 중 하나는 문자열을 변경하는 작업은 크게 두 가지 타입으로 나뉘는데 하나는 원본 문자열 그 자체를 변경하는 것이고 다른 하나는 조작이 적용된 사본을 만드는 것이다. 이 장의 각 절에서는 이를 각각의 내용을 다뤄보도록 하겠다.더 보기 »(Swift) Swift의 String타입 기초 – 02. 문자열 조작

Swift의 String타입 기초 정복 – 01. 문자열 생성 방법들

문자열은 대부분의 프로그래밍 언어에서 중요한 비중을 차지하는 데이터타입이다. 많은 경우에 프로그램의 입출력은 주로 문자열 형식으로 전달되며, 사람이 읽을 수 있는 데이터를 그대로 받아서 처리하려는 경우에 문자열을 자르고 변환하고 조사하고 합치는 등의 작업은 거의 모든 프로그래머들의 필수적인 소양이며, 그만큼 프로그래밍 분야에서 문자열은 중요한 타입이다.
Swift의 문자열은 인코딩 독립적인 문자의 집합으로 타 언어에서 개별문자의 배열처럼 다뤄지는 것과는 내부적인 동작이 다르다. 따라서 직접적인 정수 인자에 의한 subscription이 불가능한 등의 제약 사항이 많아 보인다. 하지만 유니코드 문자열에 대한 완전한 지원과 유서깊은(?) NSString과의 연계등으로 여러가지 편의 기능들을 공짜로 얻게 되는 부분도 있다. 이 글에서는 Swift의 문자열에 대해서 여러 다양한 방법으로 문자열을 생성하는 것부터 시작해서 기본적인 변환/조작과 실제로 사용할 수 있는 몇 가지 예제들에 대해서 살펴보도록 하겠다.더 보기 »Swift의 String타입 기초 정복 – 01. 문자열 생성 방법들

UnicodeScalar

UnicodeScalar 유니코드 문자 1개에 해당하는 코드 포인트값을 담고 있는 데이터이다. UnicodeScalar는 4바이트 유니코드 값 1개에 대응되기 때문에 UInt32 타입으로 변환하거나, UInt32값으로부터 생성해낼 수 있다. let i:Uint32 = 0xac01 let c = UnicodeScalar(i) print(c) let v:UInt32 = c.value Swift의 Character 타입은 글자 1개를 나타내는 자료형이지만, 유니코드 문자 중에서는 여러 개의 코드 값이 하나로 합쳐진 글자들이 있기 때문에 1개의 Character 타입 값은 1개 혹은 그 이상의 UnicodeScalar 값으로 표현된다. 예를 들어 한글 "학"은 1개의 글자로 그 자체로 유니코드 코드포인트 값 1개에 대응될… 더 보기 »UnicodeScalar

String in Swift

Swift의 문자열 수정 (2015. 12. 07) : Swift2.0에서부터 문자열은 더 이상 Collection 타입이 아니므로 [Character] 타입으로 변경할 수 없으며, advance() 함수 역시 전역 함수에서 제거되고 Index 타입의 메소드로 변경되었다. NSString은 유니코드 문자열을 UTF16으로 인코딩한 바이트배열로 문자를 다루는데 비해, Swift의 문자열은 유니코드 문자열의 복잡 다단한 특성들을 정확히 반영하기 위해 애써서 디자인한 흔적들이 눈에 띈다. 보다 자세한 내용에 대해서는 따로 포스팅하겠다. Swift의 문자열은 유니코드 문자열이고, 유니코드의어떤 특징들(여러개의 스칼라 코드가 하나의 문자로 결합하는 등)로 인해서 내부적으로는 단순 배열이 아니다. 따라서 Swift의 문자열은 인덱스에… 더 보기 »String in Swift

[C] 문자열 상수와 문자열 변수의 차이

문자열 상수와 문자열 변수 문자열을 초기화하는 다음 두 가지 방법은 거의 비슷해 보이지만 근본적으로 완전히 다른 동작을 한다. char *s1 = "abcdefg"; char s2[8] = "abcdefg"; 첫번째 s1은 프로그램이 로딩될 때 정적영역에 "abcdefg"를 저장한 다음 이 시작 주소를 s1에 대입한다. 문자열 포인터는 s1에는 나중에 다른 주소의 값을 대입할 수 있다. 즉, s1자체는 변경이 가능한 포인터 변수이지만, 지금 s1이 가리키고 있는 문자열은 문자열 상수이므로 이 문자열을 변경할 수 없다. 반대로 s2는 힙 영역에 메모리를 할당한 후 "abcdefg"를 이곳에 저장했다. 따라서 s2에… 더 보기 »[C] 문자열 상수와 문자열 변수의 차이