Swift

Easter79
• 阅读 797

在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("两个后缀相等")
            }
        }
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
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
Karen110 Karen110
3年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
晴空闲云 晴空闲云
3年前
javascript实践教程-03-变量
本节目标1.掌握声明变量的方式。2.掌握var和let的区别。内容摘要本篇讲解了变量声明的两种方式var和let,并对比var和let声明变量的差别,最后对变量名名称规则进行了总结。阅读时间1015分钟变量基础js中声明变量可以使用var和let关键词。其中var是es5的语法,let是es6的语法。var声明变量var可以用来声明局部变量和全局变
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
ES6之常用开发知识点:入门(一)
ES6介绍ES6,全称ECMAScript6.0,2015.06发版。let和const命令let命令let命令,用来声明变量。它的用法类似于var,区别在于var声明的变量全局有效,let声明的变量只在它所在的代码块内有效。使用var声明:vara
Easter79 Easter79
3年前
Swift解读专题二——基本类型
Swift解读专题二——基本类型一、常量和变量        Swift语言的常量和变量在使用之前,必须被定义。常量用于处理程序中只在初始化时设置的量值,之后不能进行赋值改变,变量用于处理程序中可以进行改变的量值。分别用let和var来声明常量和变量,示例如下:var varValue  1
Wesley13 Wesley13
3年前
ES6的语法
一,定义变量let(类似var)在js一直有一个bug是var:1、var声明的变量会有变量提升console.log(name);//jhonvarname'jhon';2、var没有块级作用域varname2'jjjon';{varname2'tom';
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k