ios swift 학습 일기 4 - 문자열 과 문자
12886 단어 swift
ios swift , objectc , c java 。 ios swift , 。 swif 。 。 。
http://download.csdn.net/detail/a358763471/8009171
String “hello, world“”,“ ” Character( ) , String 。
Swift String Character , Unicode 。 C , 。 + 。 Swift , , 。
, String 、 。 Unicode , Unicode (representations) 。
Swift 、 、 , 、 。
:
Swift String Foundation NSString 。 Cocoa Cocoa Touch Foundation 。 NSString API String 。 , String 。 NSString API String 。
Foundation Cocoa String Using Swift with Cocoa and Objective-C。
(String Literals)
。 ("") 。
。
let someString = "Some string literal value"
:
someString ,Swift String 。
:
\0( )、\\( )、\t( )、
( )、\r( )、\"( )、\'( )。
Unicode , \xnn, nn 。
Unicode , \unnnn, nnnn 。
Unicode , \Unnnnnnnn, nnnnnnnn 。
。 wiseWords ( ); dollarSign、blackHeart sparklingHeart Unicode :
let wiseWords = "\" \" - "
// " " -
let dollarSign = "\x24" // $, Unicode U+0024
let blackHeart = "\u2665" // ?, Unicode U+2665
let sparklingHeart = "\U0001F496" // ??, Unicode U+1F496
(Initializing an Empty String)
, 。 , String :
var emptyString = "" //
var anotherEmptyString = String() // String
// 。
Boolean isEmpty :
if emptyString.isEmpty {
println(" ")
}
// :" "
(String Mutability)
, :
var variableString = "Horse"
variableString += " and carriage"
// variableString "Horse and carriage"
let constantString = "Highlander"
constantString += " and another Highlander"
// (compile-time error) - 。
:
Objective-C Cocoa , (NSString NSMutableString) ,Swift , 。
(Strings Are Value Types)
Swift String 。 , 、 / , 。 , , 。 。
:
Cocoa NSString , Cocoa NSString , / , , NSString , , 。
Swift / 。 , 。 。
,Swift , , 。
(Working with Characters)
Swift String Character( ) 。 Unicode 。 for-in :
for character in "Dog!??" {
println(character)
}
// D
// o
// g
// !
// ??
for-in For Loops 。
, Character , :
let yenSign: Character = "¥"
(Counting Characters)
countElements , , 。
let unusualMenagerie = "Koala ??, Snail ??, Penguin ??, Dromedary ??"
println("unusualMenagerie has \(countElements(unusualMenagerie)) characters")
// :"unusualMenagerie has 40 characters"
:
Unicode Unicode 。 Swift 。 。 , countElements 。
countElements NSString length 。NSString length UTF-16 , Unicode 。 ,NSString length Swift String utf16count。
(Concatenating Strings and Characters)
(+) :
let string1 = "hello"
let string2 = " there"
let character1: Character = "!"
let character2: Character = "?"
let stringPlusCharacter = string1 + character1 // "hello!"
let stringPlusString = string1 + string2 // "hello there"
let characterPlusString = character1 + string1 // "!hello"
let characterPlusCharacter = character1 + character2 // "!?"
(+=) :
var instruction = "look over"
instruction += string2
// instruction "look over there"
var welcome = "good morning"
welcome += character1
// welcome "good morning!"
:
, 。
(String Interpolation)
, 、 、 。 :
let multiplier = 3
let message = "\(multiplier) 2.5 \(Double(multiplier) * 2.5)"
// message "3 2.5 7.5"
,multiplier \(multiplier) 。 multiplier 。
multiplier 。 Double(multiplier) * 2.5 (7.5) 。 , \(Double(multiplier) * 2.5) 。
:
(") (\), 。
(Comparing Strings)
Swift : 、 。
(String Equality)
, :
let quotation = " ."
let sameQuotation = " ."
if quotation == sameQuotation {
println(" ")
}
// :" "
/ (Prefix and Suffix Equality)
hasPrefix/hasSuffix / 。 Boolean 。 / 。
《 》 :
let romeoAndJuliet = [
"Act 1 Scene 1: Verona, A public place",
"Act 1 Scene 2: Capulet's mansion",
"Act 1 Scene 3: A room in Capulet's mansion",
"Act 1 Scene 4: A street outside Capulet's mansion",
"Act 1 Scene 5: The Great Hall in Capulet's mansion",
"Act 2 Scene 1: Outside Capulet's mansion",
"Act 2 Scene 2: Capulet's orchard",
"Act 2 Scene 3: Outside Friar Lawrence's cell",
"Act 2 Scene 4: A street in Verona",
"Act 2 Scene 5: Capulet's mansion",
"Act 2 Scene 6: Friar Lawrence's cell"
]
hasPrefix :
var act1SceneCount = 0
for scene in romeoAndJuliet {
if scene.hasPrefix("Act 1 ") {
++act1SceneCount
}
}
println("There are \(act1SceneCount) scenes in Act 1")
// :"There are 5 scenes in Act 1"
, hasSuffix :
“var mansionCount = 0
var cellCount = 0
for scene in romeoAndJuliet {
if scene.hasSuffix("Capulet's mansion") {
++mansionCount
} else if scene.hasSuffix("Friar Lawrence's cell") {
++cellCount
}
}
println("\(mansionCount) mansion scenes; \(cellCount) cell scenes")
// :"6 mansion scenes; 2 cell scenes”
(Uppercase and Lowercase Strings)
uppercaseString lowercaseString / 。
let normal = "Could you help me, please?"
let shouty = normal.uppercaseString
// shouty "COULD YOU HELP ME, PLEASE?"
let whispered = normal.lowercaseString
// whispered "could you help me, please?"
Unicode
Unicode , 。 , 。
Swift Unicode , Unicode 。
Unicode (Unicode Terminology)
Unicode unicode 。 unicode 21 ( ), U+0061 A ("a"),U+1F425 ("??")
Unicode , unicode Unicode 。 UTF-8( 8 ) UTF-16( 16 )。
Unicode (Unicode Representations of Strings)
Swift Unicode 。
for-in , Unicode 。 。
, Unicode :
UTF-8 ( utf8 )
UTF-16 ( utf16 )
21 Unicode ( unicodeScalars )
D``o``g``! ??(DOG FACE,Unicode U+1F436) :
let dogString = "Dog!??"
UTF-8
utf8 UTF-8 。 UTF8View ,UTF8View 8 (UInt8) , UInt8 UTF-8 :
for codeUnit in dogString.utf8 {
print("\(codeUnit) ")
}
print("
")
// 68 111 103 33 240 159 144 182
, 10 (68, 111, 103, 33) D o g !, UTF-8 ASCII 。 (240, 159, 144, 182) DOG FACE 4 UTF-8 。
UTF-16
utf16 UTF-16 。 UTF16View ,UTF16View 16 (UInt16) , UInt16 UTF-16 :
for codeUnit in dogString.utf16 {
print("\(codeUnit) ")
}
print("
")
// 68 111 103 33 55357 56374
, (68, 111, 103, 33) D o g !, UTF-16 UTF-8 。
(55357 56374) DOG FACE UTF-16 。 U+D83D( 55357), U+DC36( 56374)。
Unicode (Unicode Scalars)
unicodeScalars Unicode 。 UnicodeScalarView , UnicodeScalarView UnicodeScalar 。 UnicodeScalar 21 Unicode 。
UnicodeScalar , 21 , UInt32 。
for scalar in dogString.unicodeScalars {
print("\(scalar.value) ")
}
print("
")
// 68 111 103 33 128054
, (68, 111, 103, 33) D o g !。 ,128054, 1F436 。 DOG FACE Unicode U+1F436。
, UnicodeScalar , :
for scalar in dogString.unicodeScalars {
println("\(scalar) ")
}
// D
// o
// g
// !
// ??
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
백그라운드에서 값을 계산하고 Swift 동시성 이후에 결과 사용값을 계산해야 하고 메인 스레드를 차단하지 않으려면 계산된 값을 반환하는 Swift Task 구조에서 해당 값을 계산하면 됩니다. Swift 동시성 이전에는 백그라운드 대기열로 이동하여 필요한 값을 계산하고 필요한 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.