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
// !
// ??

좋은 웹페이지 즐겨찾기