3-2. 文字(Character)
14937 ワード
このセクションでは、文字に関する項目について説明します.文字列が複数の文字で構成されていると考えると便利です.
テキスト操作
文字列およびforループでアクセスできます. 文字列テキストの場合は、個別のCharacterタイプの定数または変数を作成できます. String値は、初期化係数がCharacter値を伝達する配列で生成することができる. String値は、プラス記号(+)で接続して新しいStringを生成できます. に存在するString変数では、加算代入演算子(+=)を使用してString値を接続できます. Stringタイプのappend()メソッドを使用して、String変数にCharacter値を追加できます. 文字列の挿入
は、文字列内の各Characterの位置に対応する.インデックス・インデックス・タイプがあります.startIndex Propertyを使用してStringの最初のCharacterにアクセスします.endIndex propertyは最後の文字にアクセスできます.Stringが空の場合、両方の値は同じです.Stringメソッドインデックス(before:)とインデックス(after:)を使用して、所与のインデックスの前後にアクセスできます.指定したインデックスからリモートインデックスにアクセスするには、index(:offsetBy:)メソッドも使用できます.次の例を参照してください. 文字列の特定のインデックスに文字を挿入するにはinsert(at:)メソッドを使用し、他の文字列の内容を特定のインデックスに挿入するにはinsert(contentsOf:at:)メソッドを使用します. 文字列から特定のインデックスの文字を削除するには、remove(at:)メソッドを使用します.特定の範囲の文字列の一部を削除するには、removeSubrange(:)メソッドを使用します. 文字列を必要なインデックスサイズで分割し、ユーザーが必要とする新しい文字列に初期化できます. 文字列は、同じ演算子とは異なる演算子を使用して比較されます. 接頭辞と接尾辞の同等性を比較することができる.Stringタイプのパラメータを受け入れ、ブール値を返します.
テキスト操作
Stringの各Character値には、
for character in "Dog" {
print(character)
}
//D
//o
//g
//다음 순서대로 문자열 속 문자를 출력하게 된다.
let someString : Character = "!"
// 단독 문자열 리터럴에 대해서는 문자 타입으로 초기화가 가능하다.
let catCharacter : [Character] = ["C", "a", "t"]
let catString = String(catCharacter)
print(catString)
//Cat 을 출력하게 된다.
//문자의 배열을 문자열 타입 전환 시 이를 유추하여 문자열로 반환한다.
文字列と文字の関連付け
let someString = "Some String"
let anyString = " any String"
let new = someString + anyString
//new는 "Some String any String 문자열 리터럴을 가지게 된다.
var someString = "Some String"
let anyString = " any String"
someString += anyString
//위와 동일한 결과를 나타내준다.
let someString : Character = "!"
var anyString : String = "Hello world"
anyString.append(someString)
//"Hello world!"를 값으로 가지게 된다.
文字列の挿入
挿入文字列は、定数、変数、およびテキストに含まれる値の式をブレンドして新しいStringを作成します.これは、文字列文字にスラッシュとカッコを付けることで伝わります.文字の中で演算で伝えることもできます.let someNumber : Int = 1
let message : String = "\(someNumber) is my answer!"
let message2 : String = "\(someNumber*2) is my new answer!"
//이 경우 메세지는 1 is my answer!를 가지게 된다.
//아래는 연산 후 2 is my answer!를 가진다.
文字列へのアクセスと変更
各String値
let someNumber : Int = 1
let message : String = "\(someNumber) is my answer!"
let message2 : String = "\(someNumber*2) is my new answer!"
//이 경우 메세지는 1 is my answer!를 가지게 된다.
//아래는 연산 후 2 is my answer!를 가진다.
各String値
let someString = "Some String!"
someString[someString.startIndex]
//S를 리턴한다.
//someString의 인덱스로 접근하므로 가장 첫 인덱스 값인 S를 반환해준다.
someString[someString.index(before: someString.endIndex)]
//!
//someString에서 마지막 인덱스를 리턴한다.
someString[someString.index(after: someString.startIndex)]
// o를 리턴한다.
var welcome = "Hello"
welcome.insert("!", at: welcome.endIndex)
//이렇게 하게되면 "Hello!"를 리턴하게 된다.
welcome.insert(contentsOf: "there", at: welcome.index(before: welcome.endIndex))
//이렇게 해주게 되면 "hello there!"를 반환해준다.
welcome.remove(at: welcome.index(before: welcome.endIndex))
//이렇게 하면 "hello there"를 반환해준다. 가장 마지막 인덱스 값인 !가 사라져있다.
let range = welcome.index(welcome.endIndex, offsetBy: -6)..<welcome.endIndex
//반 닫힘 연산자를 이용하여 다음과 같이 범위를 인덱스 범위를 지정해준다.
welcome.removeSubrange(range)
//"hello"를 반환하게 된다.
部分文字列
let someString = "Hello, world"
let index = someString.firstIndex(of: ",") ?? greeting.endIndex
let beginning = greeting[..<index]
//다음과 같이 처음 , 가 나오는 인덱스를 범위로 잡기 위해 firstIndex(of:)메소드를 사용했다.
//그리고 난 후 beginning이라는 상수를 해당 인덱스 앞까지의 문자열 리터럴로 초기화해주었다
let newString = String(beginning)
//그리고 난 결과물을 String의 인스턴스로 최종 변환해주어야 한다.
文字列の比較
let a = "Hello"
let b = "world"
if a == b {
print(a)
}
//다음과 같이 연산자를 통해서 문자열의 비교여부를 참, 거짓으로 판별 가능하다.
hasPrefix(:)とhasSuffix(:)のメソッドを呼び出して、let acting = [
"Act1. romeo",
"Act1. Juliet",
"Act1. Room"
]
var act1SceneCount = 0
for scene in acting {
if scene.hasPrefix("Act1.") {
act1SceneCount += 1
}
}
//다음과 같이 하면 최종 act1SceneCount변수는 3의 값을 지니게 된다.
var romeoCount = 0
for scene in acting {
if scene.hasSuffix("romeo") {
romeoCount += 1
}
}
//다음과 같이 하게 된다면 최종 1을 지니게 된다.
Reference
この問題について(3-2. 文字(Character)), 我々は、より多くの情報をここで見つけました https://velog.io/@devleeky16498/3-2.-문자Characterテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol