다음을 통해 공유


문자열(F#)

string 형식은 변경할 수 없는 텍스트를 유니코드 문자의 시퀀스로 나타냅니다. string은 .NET Framework의 String에 대한 별칭입니다.

설명

문자열 리터럴은 따옴표 문자(")로 구분됩니다. 특수 문자를 인코딩하는 데는 백슬래시 문자(\)가 사용됩니다. 백슬래시와 그 다음에 오는 문자를 합쳐 이스케이프 시퀀스라고 합니다. 다음 표에는 F# 문자열 리터럴에 지원되는 이스케이프 시퀀스가 나와 있습니다.

문자

이스케이프 시퀀스

백스페이스

\b

줄 바꿈

\n

캐리지 리턴

\r

Tab

\t

백슬래시

\\

큰따옴표

\"

아포스트로피

\'

유니코드 문자

\uXXXX 또는 \UXXXXXXXX(여기서 X는 16진수입니다.)

@ 기호가 앞에 오는 리터럴은 축자 문자열입니다. 리터럴이 축자 문자열인 경우 연속으로 나오는 따옴표 문자 두 개가 따옴표 문자 한 개로 해석되는 것을 제외하고는 이스케이프 시퀀스가 모두 무시됩니다.

또한 string 삼중 따옴표로 묶어야 할 수도 있습니다. 이대/소문자, 이중 인용 부호 문자를 포함 한 모든 이스케이프 시퀀스 무시 됩니다. 따옴표 붙은 문자열에 포함 된 포함 된 문자열을 지정 하는 축 자 문자열 또는 세 번 따옴표 붙은 문자열 사용할 수 있습니다. 약어 문자열을 사용 하는 경우 단일 인용 부호 문자를 나타내는 데 두 개의 인용 부호 문자를 지정 해야 합니다. 3 중 따옴표 붙은 문자열을 사용 하는 경우 작은따옴표 문자 없이 문자열 끝으로 구문 분석 되 고 사용할 수 있습니다. XML포함 된 따옴표를 포함 하는 다른 구조를 작업할 때이 기술이 유용할 수 있습니다.

// Using a verbatim string
let xmlFragment1 = @"<book author=""Milton, John"" title=""Paradise Lost"">"

// Using a triple-quoted string
let xmlFragment2 = """<book author="Milton, John" title="Paradise Lost">"""

코드에서 문자열에 줄 바꿈을 포함할 수 있으며, 백슬래시 문자가 줄 바꿈 바로 앞에 오는 마지막 문자가 아니면 줄 바꿈은 줄 바꿈이라는 원래 의미 그대로 해석됩니다. 백슬래시 문자를 사용하는 경우 다음 줄의 선행 공백은 무시됩니다. 다음 코드는 값이 "abc\n def"인 str1 문자열과 값이 "abcdef"인 str2 문자열을 생성합니다.

let str1 = "abc
     def"
let str2 = "abc\
     def"

다음과 같이 배열 방식의 구문을 사용하여 문자열의 개별 문자에 액세스할 수 있습니다.

printfn "%c" str1.[1]

출력은 b입니다.

또는 다음 코드에서와 같이 배열 조각 구문을 사용하여 하위 문자열을 추출할 수 있습니다.

printfn "%s" (str1.[0..2])
printfn "%s" (str2.[3..5])

출력은 다음과 같습니다.

abc
def

byte[] 형식의 부호 없는 바이트 배열을 사용하여 ASCII 문자열을 표현할 수 있습니다. 문자열 리터럴에 접미사 B를 추가하여 해당 리터럴이 ASCII 문자열임을 나타낼 수 있습니다. 바이트 배열을 사용하는 ASCII 문자열 리터럴은 유니코드 이스케이프 시퀀스를 제외하고 유니코드 문자열과 동일한 이스케이프 시퀀스를 지원합니다.

// "abc" interpreted as a Unicode string.
let str1 : string = "abc" 
// "abc" interpreted as an ASCII byte array. 
let bytearray : byte[] = "abc"B 

문자열 연산자

문자열을 연결하는 데는 + 연산자를 사용하거나 ^ 연산자를 사용하는 두 가지 방법이 있습니다. + 연산자는 .NET Framework 문자열 처리 기능과의 호환성을 유지합니다.

다음 예제에서는 일반적인 문자열 연결을 보여 줍니다.

let string1 = "Hello, " + "world"

문자열 클래스

F#의 문자열 형식은 실제로는 .NET Framework String 형식이므로 모든 String 멤버를 사용할 수 있습니다. 여기에는 문자열을 연결하는 데 사용되는 + 연산자, Length 속성, 문자열을 유니코드 문자의 배열로 반환하는 Chars 속성 등이 포함됩니다. 문자열에 대한 자세한 내용은 String을 참조하십시오.

String의 Chars 속성을 사용하면 다음 코드에서와 같이 인덱스를 지정하여 문자열의 개별 문자에 액세스할 수 있습니다.

let printChar (str : string) (index : int) =
    printfn "First character: %c" (str.Chars(index))

문자열 모듈

FSharp.Core 네임스페이스의 String 모듈에는 문자열을 처리하기 위한 추가 기능이 포함되어 있습니다. 자세한 내용은 Core.String 모듈(F#)을 참조하십시오.

참고 항목

참조

String

기타 리소스

F# 언어 참조