//
// ViewController.swift
// 010-字符串
//
// Created by 莊壯勇 on 2018/1/3.
// Copyright © 2018年 Personal. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
demo4()
}
// MARK: - 字符串的子串
func demo4() {
// 建議: 一般使用NSString 作爲中轉, 因爲Swift取子串的方法一直在優化
// 更容易理解
let str = "我們一起去飛"
// 1.NSString
let ocStr = str as NSString
let s1 = ocStr.substring(with: NSMakeRange(2, 3))
print(s1)
// 2. String 的3.0 方法
// 偶爾使用很方便,但是複雜的截取,不好理解,而且語法經常變化!知道就好
//let r = 0..<5
//str.substring(with: <#T##Range<String.Index>#>)
//Index
// startIndex position == 0
print(str.startIndex)
// endIndex position == 6
print(str.endIndex)
let s2 = str.substring(from: "我們".endIndex)
print(s2)
// 取子字符串的範圍
guard let range = str.range(of: "一起") else {
print("沒有找到字符串")
return
}
// 一定找到的範圍
print("-------")
print(range)
print(str.substring(with: range))
}
// MARK: - 格式化
func demo3() -> () {
let h = 8
let m = 9
let s = 6
let dateStr = "\(h):\(m):\(s)"
print(dateStr)
// 使用格式字符串格式化
let dateStr1 = String(format: "%02d:%02d:%02d",h,m,s)
print(dateStr1)
}
// MARK: - 字符串拼接
func demo2() {
let name = "老王"
let age = 18
let title: String? = "BOSS"
let point = CGPoint(x: 100, y: 200)
// \(變量/常量)
// 拼接字符串需要注意 可選項 Optional
// NSStringFromCGPoint(point)
let str = "\(name) \(age) \(title ?? "") \(point)"
print(str)
}
// MARK: - 字符串的長度
func demo1() {
let str = "hello world你好"
// 1>返回指定編碼的對應的字節數量
// UTF8的編碼 (0~4個),每個漢字是3個字節
print(str.lengthOfBytes(using: .utf8))
// 2>字符串長度 - 返回字符的個數 (推薦使用)
print(str.characters.count)
// 3> 使用NSString 中轉
/**
str as NSString
swift 中可以使用'值 as 類型' 類型轉換
*/
let ocStr = str as NSString
print(ocStr.length)
}
//MARK: - 字符串的遍歷
func demo() {
// NSString 不支持以下方式遍歷
let str = "我要飛得更高"
for c in str.characters {
print(c)
}
}
}
// ViewController.swift
// 010-字符串
//
// Created by 莊壯勇 on 2018/1/3.
// Copyright © 2018年 Personal. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
demo4()
}
// MARK: - 字符串的子串
func demo4() {
// 建議: 一般使用NSString 作爲中轉, 因爲Swift取子串的方法一直在優化
// 更容易理解
let str = "我們一起去飛"
// 1.NSString
let ocStr = str as NSString
let s1 = ocStr.substring(with: NSMakeRange(2, 3))
print(s1)
// 2. String 的3.0 方法
// 偶爾使用很方便,但是複雜的截取,不好理解,而且語法經常變化!知道就好
//let r = 0..<5
//str.substring(with: <#T##Range<String.Index>#>)
//Index
// startIndex position == 0
print(str.startIndex)
// endIndex position == 6
print(str.endIndex)
let s2 = str.substring(from: "我們".endIndex)
print(s2)
// 取子字符串的範圍
guard let range = str.range(of: "一起") else {
print("沒有找到字符串")
return
}
// 一定找到的範圍
print("-------")
print(range)
print(str.substring(with: range))
}
// MARK: - 格式化
func demo3() -> () {
let h = 8
let m = 9
let s = 6
let dateStr = "\(h):\(m):\(s)"
print(dateStr)
// 使用格式字符串格式化
let dateStr1 = String(format: "%02d:%02d:%02d",h,m,s)
print(dateStr1)
}
// MARK: - 字符串拼接
func demo2() {
let name = "老王"
let age = 18
let title: String? = "BOSS"
let point = CGPoint(x: 100, y: 200)
// \(變量/常量)
// 拼接字符串需要注意 可選項 Optional
// NSStringFromCGPoint(point)
let str = "\(name) \(age) \(title ?? "") \(point)"
print(str)
}
// MARK: - 字符串的長度
func demo1() {
let str = "hello world你好"
// 1>返回指定編碼的對應的字節數量
// UTF8的編碼 (0~4個),每個漢字是3個字節
print(str.lengthOfBytes(using: .utf8))
// 2>字符串長度 - 返回字符的個數 (推薦使用)
print(str.characters.count)
// 3> 使用NSString 中轉
/**
str as NSString
swift 中可以使用'值 as 類型' 類型轉換
*/
let ocStr = str as NSString
print(ocStr.length)
}
//MARK: - 字符串的遍歷
func demo() {
// NSString 不支持以下方式遍歷
let str = "我要飛得更高"
for c in str.characters {
print(c)
}
}
}