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 "*! "

프로그램을 컴파일하고 실행하면 다음과 같은 출력이 생성됩니다.

*! *! *! *! *! *! *! *! *! *!