Swift基础(二):运算符、字符串和字符、数组、集合、字典

目录:

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 valin 1...9

{

    print(val*2);

}

//半开区间运算符

for valin 1..<9

{

    print(val*2);

}


//3.字符串和字符

let strArray:[Character] = ["a","b","c"];//字符数组

for chValin strArray

{

    print(chVal);

}

let letStr1 ="sdfgd?";

//遍历string

for chValin letStr1.characters

{

    print(chVal);

}

//遍历string,indices:返回索引,输出:sdfgd?

for indexin letStr1.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 strValin strArray2

{

    if strVal.hasPrefix("I")

    {

        varCnt++;

    }

    

}

varCnt;//2

//hasSuffix:前缀包含“I”的个数

varCnt =0;

for strValin strArray2

{

    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 strin varArrayString2//遍历

{

    print(str);

}

for (index,value)in varArrayString2.enumerate()//如果我们同时需要每个数据项的值和索引值

{

    print("item:\(index),value:\(value)");//输出:0swift 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 itemValin varSetString//for in遍历

{

    print(itemVal);

}

for itemValin varSetString.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)in varDic1

{

    print("\(varKey),\(varVal)");

}

for varValin varDic1.values.sort()//单独遍历值或键,sort()可排序

{

    print("\(varVal)");

}

let varKey = [Int](varDic1.keys);//用键初始化一个int数组

let varVal = [String](varDic1.values);//用值初始化一个string数组












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值