Swift基础(二):运算符、字符串和字符、数组、集合、字典
来源:互联网 发布:圣思园java视频百度云 编辑:程序博客网 时间:2024/06/05 14:16
目录:
1.断言
2.运算符
3.字符串和字符
4.集合类型:数组,集合,字典
import UIKit
//1.断言
var varInt =5;
assert(varInt>0,"varInt cann't be less than zero!");
//2.运算符
let letValueInt =5;
let letValueInt2 = -letValueInt;//一元负号:'-'
//空合运算符??是a!=nil?a!:b的缩写
let letStr ="big";
var varStr:String?;
var letStrVal =varStr ??letStr;
varStr ="hasVal";
var letStrVal2 =varStr ??letStr;
//闭区间运算符
for valin1...9
{
print(val*2);
}
//半开区间运算符
for valin1..<9
{
print(val*2);
}
//3.字符串和字符
let strArray:[Character] = ["a","b","c"];//字符数组
for chValinstrArray
{
print(chVal);
}
let letStr1 ="sdfgd?";
//遍历string
for chValinletStr1.characters
{
print(chVal);
}
//遍历string,indices:返回索引,输出:sdfgd?
for indexinletStr1.characters.indices
{
print(letStr1[index]);
}
var strVal ="abc";
let ch:Character ="!";
strVal.append(ch);
strVal =strVal +"test";
let letStrTst ="Good evening!";
letStrTst[letStrTst.startIndex];
//successor()后一个索引
letStrTst[letStrTst.startIndex.successor()];
//predecessor()前一个索引
letStrTst[letStrTst.endIndex.predecessor()];
//advancedBy(int)从当前索引开始第N个索引
letStrTst[letStrTst.startIndex.advancedBy(5)];
//insert:插入一个字符
var strVal2 ="hello mac!"
strVal2.insert("?", atIndex:strVal2.endIndex);
//insertContentsOf:插入一个字符串
strVal2.insertContentsOf("--Steve.".characters, at: strVal2.endIndex);
//removeAtIndex:删除一个字符
strVal2.removeAtIndex(strVal2.endIndex.predecessor());
strVal2;
//removeRange:删除指定范围的字符
let lerRange =strVal2.startIndex..<strVal2.startIndex.advancedBy(6);
strVal2.removeRange(lerRange);
//字符串比较:相等用==,前缀比较,后缀比较
let strArray2 = [
"I love ios",
"I love swift",
"We love ios"
];
//hasPrefix:前缀包含“I”的个数
var varCnt =0;
for strValinstrArray2
{
if strVal.hasPrefix("I")
{
varCnt++;
}
}
varCnt;//2个
//hasSuffix:前缀包含“I”的个数
varCnt =0;
for strValinstrArray2
{
if strVal.hasSuffix("swift")
{
varCnt++;
}
}
varCnt;//1个
//4.集合类型:数组,集合,字典
//4.1数组
var varArrayInt = [Int]();
print("count:\(varArrayInt.count)");
varArrayInt.append(3);
varArrayInt.append(67);
print("count:\(varArrayInt.count)");
varArrayInt = [];//重置为空数组
print("count:\(varArrayInt.count)");
var varArrayDouble1 = [1.0,2.0,3.0];//初始化
var varArrayDouble2 = [Double](count:3, repeatedValue:4.0);
var varArrayDouble3 =Array(count:4, repeatedValue:7.99);
var varArrayDouble4 =varArrayDouble1 +varArrayDouble3;//+号组合数组
var varArrayString2 = ["c","vb"];
varArrayString2.append("c++");
varArrayString2+=["c#"];
varArrayString2+=["java","javascript"];
var varArrayItem =varArrayString2[2];
varArrayString2[3] ="objective-c";
var isEmpty =varArrayString2.isEmpty;//判断是否为空
varArrayString2[2...3] = ["swift","python"];//替换
varArrayString2;
varArrayString2.insert("ruby", atIndex:3);//insert:插入项
varArrayString2.removeAtIndex(0);//移除某项
varArrayString2.removeFirst();
for strinvarArrayString2//遍历
{
print(str);
}
for (index,value)invarArrayString2.enumerate()//如果我们同时需要每个数据项的值和索引值
{
print("item:\(index),value:\(value)");//输出:0:swift 1:ruby......
}
//4.2集合set
var varSetInt =Set<Int>();
varSetInt.insert(3);
varSetInt = [];
var varSetString:Set<String> = ["str1","str2","str3"];//初始化
var varSetString2:Set = ["str1","str2","str3"];//等同于初始化
if !varSetString.isEmpty//isEmpty:是否为空
{
varSetString.insert("str4");
print(varSetString.count);
}
ifvar varRet =varSetString.remove("str4")//remove:返回被删除的值,否则返回Nil
{
print("\(varRet) is removed!");
}
ifvarSetString.contains("str3")//contains:是否包含此键
{
print("contains this string!");
}
for itemValinvarSetString//for in遍历
{
print(itemVal);
}
for itemValinvarSetString.sort()//swift set默认没有排序,用sort()排序
{
print(itemVal);
}
//基本集合操作
var varSetInt1:Set<Int> = [1,2,3,4,5];
var varSetInt2:Set<Int> = [4,5,6,7];
varSetInt1.intersect(varSetInt2);//相交
varSetInt1.exclusiveOr(varSetInt2);//异或
varSetInt1.union(varSetInt2);//合并
varSetInt1.subtract(varSetInt2);//排除
var varSetInt3:Set<Int> = [1,2,3,4,5];
var varSetInt4:Set<Int> = [6,7,8];
varSetInt3.isSubsetOf(varSetInt1);//isSubsetOf是否为子集
varSetInt3.isStrictSubsetOf(varSetInt1);//isStrictSubsetOf是否为真子集(不能相等)
varSetInt3.isSupersetOf(varSetInt1);//isSupersetOf是否为父集
varSetInt3.isStrictSupersetOf(varSetInt1);//isStrictSupersetOf是否为父集&&不能相等
varSetInt3.isDisjointWith(varSetInt1);//isDisjointWith方法来判断两个集合是否完全不同
varSetInt3.isDisjointWith(varSetInt4);//完全不相同,没有相同的值
//4.3字典
var varDic = [Int:String]();//初始化一个空的int:string字典
varDic[4] ="str1";
varDic;
varDic = [:];//赋值空
var varDic1:[Int:String] = [2:"str1",45:"str2"];
varDic1[6] ="str3";
print(varDic1.count);//count
if !varDic1.isEmpty//isEmpty
{
print("not null!");
}
//更新值
varDic1[6] ="str4";
//updateValue返回旧值,否则返回nil
iflet oldVal =varDic1.updateValue("str5", forKey:6)
{
print("old val:\(oldVal)");
}
print(varDic1.count);
//移除值
varDic1[6] =nil;
print(varDic1.count);
varDic1[6] ="str5";
print(varDic1.count);
iflet letVal =varDic1.removeValueForKey(6)//返回被删除的值,否则返回nil
{
print("deleted val:\(letVal)");
}
print(varDic1.count);
//遍历
for (varKey,varVal)invarDic1
{
print("\(varKey),\(varVal)");
}
for varValinvarDic1.values.sort()//单独遍历值或键,sort()可排序
{
print("\(varVal)");
}
let varKey = [Int](varDic1.keys);//用键初始化一个int数组
let varVal = [String](varDic1.values);//用值初始化一个string数组
- Swift基础(二):运算符、字符串和字符、数组、集合、字典
- swift基础(二):字符串和字符
- Swift集合类型(数组和字典)
- Swift集合类型(数组和字典)
- Swift数组、字典和集合
- swift字符串,数组,字典和集合的遍历
- Swift--数组和字典(二)
- Swift学习笔记第三篇(字符串,数组,集合,字典)
- Swift 数组、字符串、集合与字典详解
- 二、基础内容:字符、数据类型、运算符和数组
- swift基础学习(03)[数组、集合、字典]
- Swift--字符串和字符(二)
- swift-集合类型03-字典和数组
- OC基础—字符串数组字典集合
- swift学习之数组、字典和字符串
- Swift编程基础(二):字符与字符串
- Swift 算法实战之路:数组,字符串,集合,与字典
- Swift中字符串,字典,数组,集合的遍历
- Spring 父类bean中的static属性值继承至子类bean中
- js中没有trim()函数
- 冒泡排序
- 【codevs 1250】Fibonacci数列(矩阵快速幂)
- JS学习17(JSON)
- Swift基础(二):运算符、字符串和字符、数组、集合、字典
- C/S和B/S的异同点
- 安装MySQL样本数据库Sakila
- Reacting to rumors
- 第32章:字符串匹配问题: 朴素算法,Rabin-Karp算法
- unity资源包的依赖关系(2)
- Runtime之概念,功能和怎么使用
- hdu 2923 Einbahnstrasse【floyd】
- Redis在Centos7上的安装部署