Swift相关知识,本随笔为 字符串、数组、字典的简单使用。

///***********************************************************************************************************/

///  2016.12.29

///***********************************************************************************************************/

1、Swift3 ,字符串的简单使用,直接将代码贴过来,更方便查看

//  字符串 string
func stringTest() -> Void {
// 字符串
let str1 = "yiyi"
let str2 = ""
var str3 = String()//空string
var str4 = ""// 空string // 字符(字符为 一 个)
let char1:Character = "d" // 字符串长度
var strCount = str1.characters.count
strCount = str1.lengthOfBytes(using: String.Encoding.utf8)
print(String(format:"strCount == "),strCount) // 字符串转换integer
print((str2 as NSString).integerValue) // 字符串拼接
str3 = str1 + str2
// str3 = "\(str1)\(str2)"
// str3 = globalStr + String(str1)
print(String(format:"str3 == "),str3) // 字符串与字符拼接
// str4 = str1+String(char1)
str4 = "\(str1)\(char1)"
str4 = str1.appending(String(char1))// 其他类型转换string String() exp:String(strCount)
print(String(format:""),str4) //字符串与其他类型值的拼接
let int1 =
let int2 = 11.1
let str5 = String(format:"%i%.1f",int1,int2)
print(String(format:"str5 == "),str5) // 字符串枚举 遍历每个字符
let s1 = "hello world!"
if strCount != {
print("判断string长度不为0,不是空")
}
for c in s1.characters {
print(c)
} // 字符串比较
let ss1 = "hello"
let ss2 = ",banana"
var ss3 = ss1+ss2
if ss1 == ss2 {
print("ss1=ss2")
}
if ss1+ss2 == ss3 {
print("ss1+ss2=ss3")
}
if ss1 > ss2 {// h大于b
print("ss1>ss2")
}
// 判断字符串是否包含字符串
if (ss3 .range(of: ss1) != nil) {
print("字符串包含子串")
}
     if ss3.hasPrefix("he") {}
     if ss3.hasSuffix("a") {}
// 字符串 大小写
print(ss3.uppercased())// HELLO,BANANA
print(ss3.capitalized)// Hello,Banana
print(ss3.lowercased())// hello,banana
/*
// 这两个用法没 明白
print(ss3.uppercased(with: Locale(identifier: "l")))// HELLO,BANANA
print(ss3.lowercased(with: Locale(identifier: "o")))// hello,banana
*/ // 截取 修剪 字符串
print(ss3.substring(from: ss3.characters.index(of: ",")!))//,banana 截取字符串从“,”开始
print(ss3.substring(to: ss3.characters.index(of: ",")!))//hello 截取字符串到“,”结束
print(ss3.unicodeScalars[ss3.unicodeScalars.startIndex ..< ss3.unicodeScalars.index(of: ",")!]);// hello
print(ss3[ss3.index(ss3.startIndex, offsetBy: )])// o 取字符串的某个字符
ss3.remove(at: ss3.characters.index(of: ",")!)// 去除字符串中特殊字符
print(ss3)// hellobanana }

 2、数组的简单使用

// 数组 array
func arrayTest() -> Void {
// 初始化
// var array1:[Any] = []// 空 任意类型
// var array2 = Array<Any>()
// var array3:[String] = []// 空 string 类型
// var array4 = Array<String>()
// let array5 = Array<Any>(repeatElement("", count: 3))
var arr0 = ["what","test","swift","array"]
let arr1 = ["hyArr",,"hySwift",] as [Any]
var arr2 = [,"","swiftArr2",,,] as [Any]
print(arr2[], arr2[], separator: "* ") // arr0.count 数组count
print(String(format:"arr0 长度 == "),arr0.count)
// 判断数组是否为空
if arr1.isEmpty {
print("arr1数组是空")
}else {
print("arr1数组不空")
}
// arr1[arr1.count-2] 取数组的某个元素
print(arr1[arr1.count-])// hySwift
// print(arr1[0])// hyArr
// public var first: Self.Iterator.Element? { get }
print(arr1.first!)// hyArr // 遍历数组
for i in ..<arr1.count {
print(arr1[i])
}
// 包含
if arr0 .contains("test") {
print("数组包含 test")
}else {
print("数组不包含 test")
} // 删除元素
// arr2 .remove(at: 4)
// arr2 .removeSubrange(1..<3)// 删除 1、2 两个元素
// arr2 .removeLast()
// arr2 .removeFirst()
arr2 .removeAll()
print(arr2) // 添加元素
arr2 .append("new1")// ["new1"]
arr2.append(contentsOf: ["Shakia", "William"])
print(arr2)
arr2 = arr1 + arr2// ["hyArr", 1, "hySwift", 3, "new1"]
arr2 = arr1
arr2 .insert("insertElement", at: )//["hyArr", 1, "hySwift", "insertElement", 3, "new1"] // 更换
if let i = arr0.index(of: "test") {
arr0[i] = "测试"
}
arr2[] = "domy"
print(arr2) // 数组排序
var sortArr = [,,,,,]
sortArr.sort(by: >)
print(String(format:"排序后:"),sortArr)// 排序后: [8, 5, 3, 1, 0, 0] // 二维数组
let tArr1 = [["tSwift","haha"],,[,]] as [Any]
let subArr1 = tArr1[]
print(subArr1) /// Array => NSArray
/// 苹果的例子
/// Description:
/// The following example shows how you can bridge an `Array` instance to
/// `NSArray` to use the `write(to:atomically:)` method. In this example, the
/// `colors` array can be bridged to `NSArray` because its `String` elements
/// bridge to `NSString`. The compiler prevents bridging the `moreColors`
/// array, on the other hand, because its `Element` type is
/// `Optional<String>`, which does *not* bridge to a Foundation type.
let colors = ["periwinkle", "rose", "moss"]
let moreColors: [String?] = ["ochre", "pine"] let url = NSURL(fileURLWithPath: "names.plist")
(colors as NSArray).write(to: url as URL, atomically: true)
// true (moreColors as NSArray).write(to: url as URL, atomically: true)
// error: cannot convert value of type '[String?]' to type 'NSArray' /// Array 的更多其他用法点进去查看方法文档
}

3、字典的简单使用

    // 字典 dictionary
func dictionaryTest() -> Void {
// 创建字典
var dict = [:"ok",:"error"]// [key:value]
var emptyDict: [String: Any] = [:]// 空字典 var emptyDict: [Int: String] = [:]
emptyDict = ["key1":"value1","key2":] // Getting and Setting Dictionary Values
print(dict[]!)// ok
print(emptyDict["key1"]!)// value1
// 添加键值对
emptyDict["key3"] = "value3"
print(emptyDict)// ["key2": 2, "key3": "value3", "key1": "value1"]
// 更新键值对的value
emptyDict["key2"] = "updateValue2"
print(String(format:("更换value后:")),emptyDict) var interestingNumbers = ["primes": [, , , , , , ],
"triangular": [, , , , , , ],
"hexagonal": [, , , , , , ]]
// 排序
for key in interestingNumbers.keys {
interestingNumbers[key]?.sort(by: >)
}
print(interestingNumbers["primes"]!)
/// print(interestingNumbers)
/// ["hexagonal": [91, 66, 45, 28, 15, 6, 1],
/// "primes": [15, 13, 11, 7, 5, 3, 2],
/// "triangular": [28, 21, 15, 10, 6, 3, 1]] // 遍历字典
let imagePaths = ["star": "/glyphs/star.png",
"portrait": "/images/content/portrait.jpg",
"spacer": "/images/shared/spacer.gif"]
for (key, value) in imagePaths {
print("The path to '\(key)' is '\(value)'.")
} /// search a dictionary's contents for a particular value
// let glyphIndex = imagePaths.index {
// $0.value.hasPrefix("/glyphs")
// }
// print(imagePaths[glyphIndex!].value)// /glyphs/star.png
// print(imagePaths[glyphIndex!].key)// star
let glyphIndex = imagePaths.contains {
$.value.hasPrefix("/glyphx")
}
print(glyphIndex)// ture /// Bridging Between Dictionary and NSDictionary
// imagePaths as NSDictionary
print("keys:\((imagePaths as NSDictionary).allKeys) ,values:\((imagePaths as NSDictionary).allValues)") }

Swift3 - String 字符串、Array 数组、Dictionary 字典的使用的更多相关文章

  1. [Swift通天遁地]五、高级扩展-(6)对基本类型:Int、String、Array、Dictionary、Date的扩展

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  2. swift2.0 字符串,数组,字典学习代码

    swift 2.0 改变了一些地方,让swift变得更加完善,这里是一些最基本的初学者的代码,里面涉及到swift学习的最基本的字符串,数组,字典和相关的操作.好了直接看代码吧. class View ...

  3. string字符串转数组

    /** * THis_is_a_cat * This Is A Cat * * Cat A Is This * @author Administrator * */ public class Test ...

  4. Swift - 1 (常量、变量、字符串、数组、字典、元组、循环、枚举、函数)

    Swift 中导入类库使用import,不再使用<>,导入自定义不再使用"" import Foundation 1> 声明变量和常量 在Swift中使用 &qu ...

  5. swift学习之label,button,imageView,字符串,数组,字典

    import UIKit class ViewController: UIViewController,UITextFieldDelegate { var textField: UITextField ...

  6. Swift 3.0 字符串、数组、字典的使用

    1.字符串 string func stringTest() -> Void { // 字符串 let str1 = "yiyi" let str2 = "2222 ...

  7. Swift学习字符串、数组、字典

    一.字符串的使用 let wiseWords = "\"I am a handsome\"-boy" var emptyString = "" ...

  8. 字符串转数组(php版)

    思路: 1.判断当前传来的值是否为数组 2.若不是现将传来的值转换为字符串类型 3.判断当前值是否为空 4.若不为空,采用正则进行匹配,如下图 preg_match('/^{.*?}$/', $str ...

  9. 03- Shell脚本学习--字符串和数组

    字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似: 单双引号的区别: 双 ...

随机推荐

  1. 【Web动画】CSS3 3D 行星运转 && 浏览器渲染原理

    承接上一篇:[CSS3进阶]酷炫的3D旋转透视 . 最近入坑 Web 动画,所以把自己的学习过程记录一下分享给大家. CSS3 3D 行星运转 demo 页面请戳:Demo.(建议使用Chrome打开 ...

  2. C++的性能C#的产能?! - .Net Native 系列《三》:.NET Native部署测试方案及样例

    之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...

  3. CSharpGL(39)GLSL光照示例:鼠标拖动太阳(光源)观察平行光的漫反射和镜面反射效果

    CSharpGL(39)GLSL光照示例:鼠标拖动太阳(光源)观察平行光的漫反射和镜面反射效果 开始 一图抵千言.首先来看鼠标拖动太阳(光源)的情形. 然后是鼠标拖拽旋转模型的情形. 然后我们移动摄像 ...

  4. kqueue例子

    网络服务器通常都使用epoll进行异步IO处理,而开发者通常使用mac,为了方便开发,我把自己的handy库移植到了mac平台上.移植过程中,网上居然没有搜到kqueue的使用例子,让我惊讶不已.为了 ...

  5. ERP软件的价格设计

    ERP体现出信息流.资金流.物流在供应商.企业.客户间的运营方向,是以销售为源头,生产.物料需求计划为核心,以金额.实时数据为基础的整体.ERP的核心是MRP(物料需求).企业的经营活动最终是为了赢利 ...

  6. quartz.net 时间表达式----- Cron表达式详解

    序言 Cron表达式:就是用简单的xxoo符号按照一定的规则,就能把各种时间维度表达的淋漓尽致,无所不在其中,然后在用来做任务调度(定时服务)的quart.net中所认知执行,可想而知这是多么的天衣无 ...

  7. MySql 管理操作常用命令

    登陆mysql mysql -u username -p 创建用户名配置权限,这里为该用户配置tablename表的全部权限,也可以指定 GRANT ALL PRIVILEGES ON databas ...

  8. VC 中与字符串相关的宏 _T、TEXT,_TEXT、L 的作用

    CSDN原博文:http://blog.csdn.net/houkai363/article/details/8134787 遇到了:不能将参数 1 从“const char [5]”转换为“LPCT ...

  9. Android消息传递之EventBus 3.0使用详解

    前言: 前面两篇不仅学习了子线程与UI主线程之间的通信方式,也学习了如何实现组件之间通信,基于前面的知识我们今天来分析一下EventBus是如何管理事件总线的,EventBus到底是不是最佳方案?学习 ...

  10. SQL Server-聚焦EXISTS AND IN性能分析(十六)

    前言 前面我们学习了NOT EXISTS和NOT IN的比较,当然少不了EXISTS和IN的比较,所以本节我们来学习EXISTS和IN的比较,简短的内容,深入的理解,Always to review ...