文档章节

swift --字符串常用方法总结

gitzhengjianhua
 gitzhengjianhua
发布于 2016/06/28 15:15
字数 564
阅读 3
收藏 0

在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("两个后缀相等")
            }
        }

 

© 著作权归作者所有

gitzhengjianhua

gitzhengjianhua

粉丝 4
博文 25
码字总数 23833
作品 3
渭南
私信 提问
《Swift 5 实用教程》电子书

在移动开发领域,iOS 系统以优越的体验获得了很多果粉的青睐,加上 Apple 提供的完善的生态链,很多移动开发者从中获益。2014年,Apple 发布全新 Swift 语言,意图替换已经陈旧的 Objective-...

YungFan
08/17
0
0
Swift工具类总结

swift出来也好长时间了,现在swift出到了4.0,版本也相对比较稳定了,所以决定准备用swift来开发新的项目。俗话说工欲善其事,必先利其器,所以在开始正式写项目之前我总结了一些常用的工具类...

辉哥de简书
2018/01/10
0
0
Swift 个人学习笔记 - 04: 字符串和字符

本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考 以下还是有很多没看懂、不确定的...

amc
2017/02/16
0
0
Swift3.0带来的变化汇总系列一——字符串与基本运算符中的变化

Swift3.0带来的变化汇总系列一——字符串与基本运算符中的变化 一、引言 Apple与今年6月13日正式发布了Swift3.0的第一个预览版本,并且相应推出了Xcode8的第一个bate版本。开发者已经可以在X...

珲少
2016/06/16
3.1K
0
Swift 5.0 值得关注的特性:更强大的 Raw String

HackingSwift: What’s new in Swift 5.0 SE200: Enhancing String Literals Delimiters to Support Raw Text Swift 5.0 对字符串声明增加了一个强有力的新特性,使用 包裹字符串。 原有方式...

没故事的卓同学
03/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
35分钟前
36
0
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
9
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部