Swift - 문자열과 문자
문자열 리터럴
문자열 리터럴은 큰따옴표(")로 둘러싸인 일련의 문자입니다.
example :
let someString = "Some string literal value"
여러 줄 문자열 리터럴
여러 줄 문자열 리터럴 - 세 개의 큰따옴표로 둘러싸인 일련의 문자.
예시 :
let quotation = """
The White Rabbit put on his spectacles. "Where shall I begin,
please your Majesty?" he asked.
"Begin at the beginning," the King said gravely, "and go on
till you come to the end; then stop."
"""
줄 바꿈을 사용하여 소스 코드를 읽기 쉽게 만들고 싶지만 줄 바꿈이 문자열 값의 일부가 되지 않도록 하려면 해당 줄 끝에 백슬래시를 작성합니다.
문자열 리터럴의 특수 문자
이스케이프된 특수 문자
\0(널 문자),
\(백슬래시),
\t(가로 탭),
\n(줄 바꿈),
\r(캐리지 리턴),
\"(큰따옴표) 및
\'(작은따옴표)
확장 문자열 구분 기호
확장 구분 기호 내에 문자열 리터럴을 배치하여 해당 효과를 호출하지 않고 문자열에 특수 문자를 포함할 수 있습니다. 문자열을 따옴표(") 안에 넣고 숫자 기호(#)로 둘러쌉니다.
예시 :
var string1 = #"Line 1\nLine 2"#
var string2 = #"Line 1\#nLine 2"#
print(string1) // Line 1\nLine 2
print(string2) // Line 1
// Line 2
Swift의 String 타입은 값 타입입니다.
즉, 값이 새 변수나 상수에 할당되거나 매개변수로 함수에 전달될 때마다 값의 새 복사본이 생성됩니다.
성격
독립형 문자 상수 또는 변수는 문자 유형 주석을 제공하여 단일 문자 문자열 리터럴에서 생성할 수 있습니다.
예시 :
let exclamationMark: Character = "!"
문자열 보간
문자열 보간은 상수, 변수, 리터럴 및 식의 혼합에서 새 문자열 값을 구성하는 방법입니다.
예시 :
let container = 3
let message = "container has \(container)"
// "container has 3"
문자열 속성 및 메서드
시작 인덱스
endIndex
색인(이전:)
인덱스(이후:)
index(_:offsetBy:)
예시 :
let greeting = "Guten Tag!"
greeting[greeting.startIndex] // G
greeting[greeting.index(before: greeting.endIndex)] // !
greeting[greeting.index(after: greeting.startIndex)] // u
let index = greeting.index(greeting.startIndex, offsetBy: 7)
greeting[index] // a
Collection 프로토콜을 준수하는 모든 유형에서 startIndex 및 endIndex 속성과 index(before:), index(after:) 및 index(:offsetBy:) 메서드를 사용할 수 있습니다. 여기에는 여기에 표시된 대로 String과 Array, Dictionary 및 Set과 같은 컬렉션 유형이 포함됩니다.
_
insert(_:at:) - 지정된 인덱스의 문자열에 단일 문자를 삽입하려면,
insert(contentsOf:at:) - 지정된 인덱스에 다른 문자열의 내용을 삽입하려면
예시 :
var welcome = "hello"
welcome.insert("!", at: welcome.endIndex)
// welcome now equals "hello!"
welcome.insert(contentsOf: " there", at: welcome.index(before: welcome.endIndex)
// welcome now equals "hello there!"
remove(at:) - 지정된 인덱스의 문자열에서 단일 문자를 제거하려면
removeSubrange(_:) - 지정된 범위에서 하위 문자열을 제거합니다.
예시 :
welcome.remove(at: welcome.index(before: welcome.endIndex))
// welcome now equals "hello there"
let range = welcome.index(welcome.endIndex, offsetBy: -6)..<welcome.endIndex
welcome.removeSubrange(range)
// welcome now equals "hello"
RangeReplaceableCollection 프로토콜을 준수하는 모든 유형에서 insert(:at:), insert(contentsOf:at:), remove(at:) 및 removeSubrange(:) 메서드를 사용할 수 있습니다. 여기에는 여기에 표시된 대로 String과 Array, Dictionary 및 Set과 같은 컬렉션 유형이 포함됩니다.
하위 문자열
문자열의 하위 문자열은 다른 문자열이 아닌 하위 문자열의 인스턴스입니다.
문자열과 하위 문자열의 차이점은 성능 최적화로서 하위 문자열은 원래 문자열을 저장하는 데 사용되는 메모리의 일부 또는 다른 하위 문자열을 저장하는 데 사용되는 메모리의 일부를 재사용할 수 있다는 것입니다.
하위 문자열은 장기 저장에 적합하지 않습니다. 원래 문자열의 저장소를 재사용하기 때문에 하위 문자열이 사용되는 동안 전체 원본 문자열을 메모리에 보관해야 합니다.
하위 문자열을 String 인스턴스로 변환합니다.
let greeting = "Hello, world!"
let index = greeting.firstIndex(of: ",") ?? greeting.endIndex
let beginning = greeting[..<index]
// beginning is "Hello"
// Convert the result to a String for long-term storage.
let newString = String(beginning)
String과 Substring은 모두 StringProtocol 프로토콜을 따릅니다. 즉, 문자열 조작 함수가 StringProtocol 값을 받는 것이 편리한 경우가 많습니다. String 또는 Substring 값을 사용하여 이러한 함수를 호출할 수 있습니다.
문자열 비교
Reference
이 문제에 관하여(Swift - 문자열과 문자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/naveenragul/swift-strings-and-characters-4g4c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)