Swift

在oc中有NSMutableString和NSString两种类型的字符串,但在swift中分别在定义的时候使用let和var来代表是否可以操作。let和var也通用于其他类型。使用let修饰的为不可变,使用var修饰的可变。

//使用var修饰可以动态的改变值 var varStr = "nihao" varStr = "hello" //使用let修饰编译不能通过 let letStr = "let nihao" letStr = "hello"

常用方法

1、字符串拼接

字符串和字符的值可以通过+号来拼接并创建一个新的字符串

var varStr = "nihao" varStr = "hello" let letStr = "let nihao" var newStr = varStr + letStr print(newStr)

可以通过+=运算符将一个字符串添加到一个已经存在的字符串常量上,当然此字符串必须是var修饰的

var varStr = "nihao" let letStr = "let nihao" varStr += letStr print(varStr)

可以同过append附加给字符串一个字符

var varStr = "nihao" let char :Character = "!" varStr.append(char) print(varStr)

2、字符串的带入

将需要操作的变量或者常量用()包住,并在前面带上\符

let number = 5 let str = "\(number) 个人有 \(number * 3) 本书" print(str) 输出结果: 5 个人有 15 本书

3、字符串个数

获取字符串个数使用strlen函数

//字符串个数 let str = "ajsdjofijweoifjaowiejfoiaw" let countOfStr = (strlen(str)) print(countOfStr)

4、字符串大小写

//字符串大小写 let normal = "nihao" let uppercaseNormal = normal.uppercaseString print(uppercaseNormal) //结果为:NIHAO let lowercaseNormal = uppercaseNormal.lowercaseString print(lowercaseNormal) //结果为:nihao //首字母大写 var str = "hello my name is zjh" let capitalezedStr = str.capitalizedString print(capitalezedStr) //结果为:Hello My Name Is Zjh

5、字符串截取

swift中截取字符串的坐标参数不是int类型,对应的参数为String.index。得创建对应的截取参数

// 字符串截取 let str = "abcdefghijklm" let startIndex = str.startIndex.advancedBy(3) //起始 let endIndex = str.endIndex.advancedBy(-2) //结束 var range = Range<String.Index>(start: startIndex,end: endIndex) //区域 var subString1 = str.substringToIndex(endIndex) var subString2 = str.substringFromIndex(startIndex) var subString3 = str.substringWithRange(range) print(subString1) print(subString2) print(subString3) //输出结果 // abcdefghijk // defghijklm // defghijk

6、字符串比较

三种:字符串是否相等、前缀或后缀是否相等

//字符串比较 let str1 = "abcdefg.com" let str2 = "abdoil.com" if str1 == str2 { print("两者相等") } //判断前缀 if str1.hasPrefix("ab") { if str2.hasPrefix("ag") { print("两个前缀相等") } } //后缀 if str1.hasSuffix(".com") { if str2.hasSuffix(".com") { print("两个后缀相等") } }
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

javascript实践教程-03-变量

本节目标1.掌握声明变量的方式。2.掌握var和let的区别。内容摘要本篇讲解了变量声明的两种方式var和let,并对比var和let声明变量的差别,最后对变量名名称规则进行了总结。阅读时间1015分钟变量基础js中声明变量可以使用var和let关键词。其中var是es5的语法,let是es6的语法。var声明变量var可以用来声明局部变量和全局变

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )