Swift 3.0 字符串、数组、字典的使用
1、字符串 string
func stringTest() -> Void {
// 字符串
let str1 = "yiyi"
let str2 = "2222"
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 = 10
let int2 = 11.1
let str5 = String(format:"%i%.1f",int1,int2)
print(String(format:"str5 == "),str5) // 字符串枚举 遍历每个字符
let s1 = "hello world!"
if strCount != 0 {
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: 4)])// 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",1,"hySwift",3] as [Any]
var arr2 = [1,"2","swiftArr2",3,9,5] as [Any]
print(arr2[0], arr2[3], 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-2])// hySwift
// print(arr1[0])// hyArr
// public var first: Self.Iterator.Element? { get }
print(arr1.first!)// hyArr // 遍历数组
for i in 0..<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: 3)//["hyArr", 1, "hySwift", "insertElement", 3, "new1"] // 更换
if let i = arr0.index(of: "test") {
arr0[i] = "测试"
}
arr2[0] = "domy"
print(arr2) // 数组排序
var sortArr = [3,5,1,0,8,0]
sortArr.sort(by: >)
print(String(format:"排序后:"),sortArr)// 排序后: [8, 5, 3, 1, 0, 0] // 二维数组
let tArr1 = [["tSwift","haha"],1,[3,2]] as [Any]
let subArr1 = tArr1[0]
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'
} 3、字典的简单使用
// 字典 dictionary
func dictionaryTest() -> Void {
// 创建字典
var dict = [200:"ok",400:"error"]// [key:value]
var emptyDict: [String: Any] = [:]// 空字典 var emptyDict: [Int: String] = [:]
emptyDict = ["key1":"value1","key2":2] // Getting and Setting Dictionary Values
print(dict[200]!)// 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": [2, 3, 5, 7, 11, 13, 15],
"triangular": [1, 3, 6, 10, 15, 21, 28],
"hexagonal": [1, 6, 15, 28, 45, 66, 91]]
// 排序
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 {
$0.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)")
}
Swift 3.0 字符串、数组、字典的使用的更多相关文章
- Swift学习—字符串&数组&字典
字符串 OC和Swift中字符串的区别 在OC中字符串类型时NSString,在Swift中字符串类型是String OC中字符串@"",Swift中字符串"" ...
- Swift(一,创建对象,类型推导,基本运算,逻辑,字符串,数组,字典)
swift用起来刚开始感觉有点怪怪的,但用了一段时间觉得还是挺好用的,哈哈.毕竟都是要有一个过程的嘛. 我就写一些自己在使用swift的时候的注意点吧,如有不正之处,还请指正! 一.在开发中优先使用常 ...
- iOS -Swift 3.0 -Array(数组与可变数组相关属性及用法)
// // ViewController.swift // Swift-Array // // Created by luorende on 16/9/12. // Copyright © 2016年 ...
- IOS NS 字符串 数组 字典 文件 动态 静态 操作
ios 常用字符串的操作 //将NSData转化为NSString NSString* str = [[NSString alloc] initWithData:response e ...
- oc字符串+数组+字典操作题目
1. 判断中间目录是否存在 (10分) 比如 传入字符串 @"/home/qianfeng/oc.txt" 和 @"qianfeng" 返回:YES 传入字符串 ...
- Object-C 语法 字符串 数组 字典 和常用函数 学习笔记
字符串 //取子字符串 NSString *str1=@"今天的猪肉真贵,200块一斤"; NSString *sub1=[str1 substringFromIndex:4]; ...
- Swift 2.0 字符串学习笔记(建议掌握OC字符串知识的翻阅)
自己公司开现在使用OC语言在写,但Swift似乎是苹果更推荐使用的开发语言,估计也是未来开发的趋势,自己以前有接触swift,但又由于公司的项目赶,也没有时间去好好地学习这款开发语言.现在年底了,项目 ...
- swift 2.0 语法 数组
import UIKit /*: 数组 * 格式 var arr:[Int] = [数值1, 数值2, 数值3] * 不可变数组 let == NSArray * 可变数组 var */ l ...
- Swift 4.0 字符串(String)学习
定义字符串常量(常量只有读操作) let lString = "constant" let lString1: String = "constant" 定义字符 ...
随机推荐
- 一张地图,告诉你NodeJS命令行调试器语句
NodeJS提供脚本调试. 进入node debug xx.js您可以进入调试模式. 版权声明:本文博客原创文章,博客,未经同意,不得转载.
- Oracle并行查询出错
1.错误描写叙述 ORA-12801: 并行查询服务器P007中发出错误信号 ORA-01722:无效数字 12801.00000 -"error signaled in parallel ...
- 摘录DirectShow数据,视频采集
DirectShow在,数据流(Data Flow)它们是依次流过每Filter的.管理其数据具有其自己的方法,并且并没有向用户提供一个统一的接口,供用户操作数据流.这里以提取视频採集在的每帧为位图数 ...
- 在vi中使用perltidy格式化perl代码
格式优美的perl代码不但让人赏心悦目,并且能够方便阅读. perltidy的是sourceforge的一个小项目,在我们写完乱七八糟的代码后,他能像变魔术一样把代码整理得漂美丽亮,快来体验一下吧!! ...
- 4GB内存原32位系统(x86)取舍问题,显卡共享内存Win8.1完全不用担心
情景:集成显卡 配置: 4G显示3.25GB 此时系统自动将用不到的系统完全共享给显卡(768MB而不是256): 看显卡适配器信息,完全共享给了显卡 解说:上图总可用图形内存 = 图2中备用 + 硬 ...
- 2014由于在myeclipse5.5.1许可证
点击假设Myeclipse负载项目server该图标不响应.这是MyEclipse过期,这也是一年许可: subscriber: axin Serial:nLR8ZC-855575-69517252 ...
- mysql基础之基本数据类型
原文:mysql基础之基本数据类型 列类型学习 mysql三大列类型 整型 Tinyint/ smallint/ mediumint/int/ bigint(M) unsigned zerofill ...
- 微信SDK使用总结
最近做一个分享功能,需要使用微信SDK分享内容给朋友或朋友圈.期间遇到些奇怪的问题,花了点时间去折腾了一番. 首先需要到微信开放平台http://open.weixin.qq.com/?lang=zh ...
- MVC 过滤器1
ASP.NET MVC 过滤器(一) 前言 前面的篇幅中,了解到了控制器的生成的过程以及在生成的过程中的各种注入点,按照常理来说篇幅应该到了讲解控制器内部的执行过程以及模型绑定.验证这些知识了.但是呢 ...
- 目前比较流行的Python科学计算发行版
经常有身边的学友问到用什么Python发行版比较好? 其实目前比较流行的Python科学计算发行版,主要有这么几个: Python(x,y) GUI基于PyQt,曾经是功能最全也是最强大的,而且是Wi ...