F #-문자열
F #에서 문자열 형식은 변경 불가능한 텍스트를 유니 코드 문자 시퀀스로 나타냅니다.
문자열 리터럴
문자열 리터럴은 따옴표 ( ") 문자로 구분됩니다.
일부 특수 문자는 개행 문자, 탭 등과 같은 특수 용도로 사용됩니다. 백 슬래시 (\) 문자를 사용하여 인코딩됩니다. 백 슬래시 문자와 관련 문자는 이스케이프 시퀀스를 만듭니다. 다음 표는 F #에서 지원하는 이스케이프 시퀀스를 보여줍니다.
캐릭터 | 탈출 시퀀스 |
---|---|
역행 키이 | \비 |
개행 | \엔 |
캐리지 리턴 | \아르 자형 |
탭 | \티 |
백 슬래시 | \\ |
인용 부호 | \ " |
아포스트로피 | \ ' |
유니 코드 문자 | \ uXXXX 또는 \ UXXXXXXXX (여기서 X는 16 진수를 나타냄) |
탈출 시퀀스를 무시하는 방법
다음 두 가지 방법으로 컴파일러가 이스케이프 시퀀스를 무시합니다.
- @ 기호 사용.
- 문자열을 삼중 따옴표로 묶습니다.
문자열 리터럴 앞에 @ 기호가 있으면이를 verbatim string. 이러한 방식으로 두 개의 따옴표 문자가 하나의 따옴표 문자로 해석된다는 점을 제외하고 문자열의 모든 이스케이프 시퀀스가 무시됩니다.
문자열을 삼중 따옴표로 묶으면 큰 따옴표 문자를 포함하여 모든 이스케이프 시퀀스도 무시됩니다.
예
다음 예제는 XML 또는 따옴표가 포함 된 다른 구조로 작업하는 방법을 보여주는이 기술을 보여줍니다.
// Using a verbatim string
let xmldata = @"<book author = ""Lewis, C.S"" title = ""Narnia"">"
printfn "%s" xmldata
프로그램을 컴파일하고 실행하면 다음과 같은 출력이 생성됩니다.
<book author = "Lewis, C.S" title = "Narnia">
문자열에 대한 기본 연산자
다음 표는 문자열에 대한 기본 작업을 보여줍니다-
값 | 기술 |
---|---|
수집 : (문자 → 문자열) → 문자열 → 문자열 | 입력 문자열의 각 문자에 지정된 함수를 적용하고 결과 문자열을 연결 한 결과 인 문자가있는 새 문자열을 만듭니다. |
concat : 문자열 → seq <문자열> → 문자열 | 지정된 문자열을 구분 기호로 연결하여 만든 새 문자열을 반환합니다. |
존재 : (char → bool) → 문자열 → bool | 문자열의 문자가 주어진 술어를 만족하는지 테스트합니다. |
forall : (char → bool) → 문자열 → bool | 문자열의 모든 문자가 주어진 술어를 충족하는지 테스트합니다. |
init : int → (int → string) → string | 지정된 함수를 각 인덱스에 적용하고 결과 문자열을 연결 한 결과 인 문자를 갖는 새 문자열을 만듭니다. |
iter : (문자 → 단위) → 문자열 → 단위 | 문자열의 각 문자에 지정된 함수를 적용합니다. |
iteri : (int → char → unit) → string → unit | 문자열의 각 문자와 문자 자체의 인덱스에 지정된 함수를 적용합니다. |
길이 : 문자열 → 정수 | 문자열의 길이를 반환합니다. |
map : (char → char) → string → string | 문자가 입력 문자열의 각 문자에 지정된 함수를 적용한 결과 인 새 문자열을 만듭니다. |
mapi : (int → char → char) → string → string | 입력 문자열의 각 문자와 인덱스에 지정된 함수를 적용한 결과 인 문자가있는 새 문자열을 만듭니다. |
복제 : int → 문자열 → 문자열 | 지정된 수의 문자열 인스턴스를 연결하여 문자열을 반환합니다. |
다음 예제는 위의 일부 기능의 사용을 보여줍니다-
예 1
String.collect 함수는 지정된 함수를 입력 문자열의 각 문자에 적용하고 결과 문자열을 연결 한 결과 인 새 문자열을 작성합니다.
let collectTesting inputS =
String.collect (fun c -> sprintf "%c " c) inputS
printfn "%s" (collectTesting "Happy New Year!")
프로그램을 컴파일하고 실행하면 다음과 같은 출력이 생성됩니다.
H a p p y N e w Y e a r !
예 2
String.concat 함수는 지정된 문자열 시퀀스를 구분 기호로 연결하고 새 문자열을 반환합니다.
let strings = [ "Tutorials Point"; "Coding Ground"; "Absolute Classes" ]
let ourProducts = String.concat "\n" strings
printfn "%s" ourProducts
프로그램을 컴파일하고 실행하면 다음과 같은 출력이 생성됩니다.
Tutorials Point
Coding Ground
Absolute Classes
예제 3
String.replicate 메서드는 지정된 수의 문자열 인스턴스를 연결하여 문자열을 반환합니다.
printfn "%s" <| String.replicate 10 "*! "
프로그램을 컴파일하고 실행하면 다음과 같은 출력이 생성됩니다.
*! *! *! *! *! *! *! *! *! *!