Swift集百家之长,吸收了主流语言java,c,c++等的好的特性,所以它功能十分强大,今天我们就来看看它强大的字符串。

首先,我们带着这样几个问题去了解、理解swift的字符串。

1、swift字符串怎么初始化的?

2、swift字符串长度可变吗?

3、swift字符串是指针,还是实际的值?

4、swift有哪些特性?

下面,我来一一解答这些问题。

(1) swift 字符串的初始化有2种方式,这两种方式的结果都是一样的。我们来初始化一个空字符串。

  

  

  var str1 = ""    //  第一种方式

  

  var str2 = String()   //     第二种方式

当初始化一个非空字符串时,可以这样   var str3 = "hello word",这里要说明的是,“”里的值可以是任意符号,数字,文字,字母....

(2) swift字符串长度是可变的,当然这只针对于用var 定义的字符串,用let定义的字符串常量是不可变的。正因为这个特性,它可以和其他字符,字符串通过符号“ = ”、“ += ”组合成新的字符串。

  

  var str1 = "hello"

  var str2 = "world"

  var str3:Character = "!"  //这是定义字符的方式

  

  

  var strs1 = str1 + str2     //结果为“hello word”

  

  var strs2 = strs1 + str3  //结果为“hello word!”

(3)swift字符串 是实际的值,不是指针。当把字符串变量赋值给另一个值,它原来的值不变。当把字符串变量当作参数传递时,它也是一个实际的值。

  

  var str1 = "你好"

  

  var str2 =  str1

这时,str1的值还是“你好”,由此可见,它不是指针,是一个实际的值。

(4)swift字符串有哪些特性?它的比较机制,验证机制,遍历机制,转换机制,组合机制,都是它的特性。

    a、比较机制。字符串之间的比较是可以分多样的。

           它比较完全相等时,用“==”来连接;

         它比较前缀相等时,给定一个字符串前缀,然后用要比的字符串,调用hasPrefix方法,参数为给定的前缀;

         它比较后缀相等时,给定一个字符串后缀,然后用要比的字符串,调用hasSuffix方法,参数为给定的后缀。

      举个例子,我们学校在开兴趣班,要统计各个兴趣班的人数有多少?用这个就可以很容易的找出来。

      let students =["ios,谢明,s3sj101","android,胡军,s3jn95","ios,都美君,s3jn95","技术支持,高小龙,s3jn92","数据库,阿斯,s3jn92","数据库,封剑,s3j101"]

  

      要统计出 各个兴趣班的人数,只需这样做:

      var ios = 0  //定义ios班的人数

      var android = 0   //定义android班的人数

      var technical = 0  //定义技术支持班的人数

      var database = 0  // 定义数据库班的人数

       for student in students  {

        

        if student.hasPrefix("ios") {

            ios++

        }

        if student.hasPrefix("android") {

          android++

        }

        if student.hasPrefix("技术支持") {

          technica++

        }

        if student.hasPrefix("数据库") {

          database++

        }

     }

      

print(“报ios班的人数\(ios)”)

print(“报android班的人数\(android)”)

print(“报技术支持班的人数\(technica)”)

print(“报数据库班的人数\(database)”)

如果我们要统计各个原班有多少人,可以这样做:

      let students =["ios,谢明,s3sj101","android,胡军,s3jn95","ios,都美君,s3jn95","技术支持,高小龙,s3jn92","数据库,阿斯,s3jn92","数据库,封剑,s3j101"]

  

     

      var s3sj95 = 0  //定义s3sj95班的人数

      var s3jn92 = 0   //定义s3jn92班的人数

      var s3j101 = 0  //定义s3j101班的人数

  

       for student in students  {

        

        if student.hasSuffix("s3sj95") {

            s3sj95++

        }

        if student.hasSuffix("s3jn92") {

          s3jn92++

        }

        if student.hasSuffix("s3j101") {

          s3j101++

        }

     }

      

print(“s3sj95班的人数\(s3sj95)”)

print(“s3jn92班的人数\(s3jn92)”)

print(“s3j101班的人数\(s3j101)”)

  b:验证机制。判断一个字符串是不是为空,我们可以用isEmpty属性获取

    var  str = " "

     if str.isEmpty {

       print("str是空字符串")

     }else{

      print("str是非空字符串")

    }

    执行结果为:str是空字符串

  c:遍历机制。我们知道,字符串是有字符组成,swift可以遍历字符串中的每个字符。

  

    var str = "helloWord"

    for char in sre {

      print("\(char)")

    }

  

  执行结果会把每个字符遍历出来。

  d:转换机制。它还支持字符串的大小写转换。通过uppercaseString和lowercaseString属性可以做到,我们来看看:

  var  str = "helloWord"

  

  var  upper = " "  // 定义一个存放转化为大写后的变量

  var lower = " "   //// 定义一个存放转化为小写后的变量

  

  upper = str.uppercaseString

  lower = str.lowercaseString

  

  然后分别输出就行了 ,很简单吧。。。

  

  

  e:组合机制.组合机制是它很大的一个亮点,它的长度是可变的,因此也是可以组合的。这给我们的开发带来很大的遍历,是我们开发者的福音哦。

  

  这里就不举例了,他们之间可以通过“+”、“+=”、也可以通过一个合法的表达式生成新的字符串。最后,它还可以计算字符串的总长度,

  需要用到的方法是:countElements。参数为要计算的字符串本身。

  

好了,今天的分享就到这。希望可以帮到刚刚学习ios或者想要学ios的朋友们,我也是新手,有不足和不对的地方求大神指正。让我们一同进步!大家可以关注我的微博http://www.cnblogs.com/lb0129/

强大的swift字符串的更多相关文章

  1. [Swift]字符串(String类、NSString类)常用操作

    NS是Cocoa类对象类型的前缀,来源于乔布斯建立的另一家公司--NeXTNSString的使用方法,和Swift语言中的String有很多相似之处. 1.字符串的定义String类 var str1 ...

  2. 【译】Swift 字符串速查表

    [译]Swift 字符串速查表 2015-12-18 10:32 编辑: suiling 分类:Swift 来源:CocoaChina翻译活动 10 5585 Swift字符串 招聘信息: iOS高级 ...

  3. swift(二)swift字符串和字符和逻辑运算

    /* 1.swift字符串和字符 2.构造字符串 3.字符串比较 4.数值运算 5.复制运算 6.关系运算 7.逻辑运算 8.区间运算 */ /* //数据 + 数据的处理 //字符信息+ 字符信息的 ...

  4. Swift字符串操作-持续更新-2022

    Swift字符串追加 var str = "OC" str.append(" Swfit") print(str) // 输出结果: OC Swift 输出结果 ...

  5. Swift字符串类型

    字符串初始化 1.初始化 let  someString        =   "Some      string    literalvalue" let wiseWords = ...

  6. Swift字符串的插入、删除和替换-备

    对应可变字符串可以插入.删除和替换,String提供了几个方法可以帮助实现这些操作.这些方法如下: splice(_:atIndex:).在索引位置插入字符串. insert(_:atIndex:). ...

  7. 【iOS】Swift字符串截取方法的改进

    字符串截取方法是字符串处理中经常使用的基本方法.熟悉iOS的朋友都知道在基础类的NSString中有substringToIndex:,substringFromIndex:以及substringWi ...

  8. Swift字符串可变性

    您可以通过将一个特定字符串分配给一个变量来对其进行修改,或者分配给一个常量来保证其不会被修改: var variableString = "Horse" variableStrin ...

  9. [Swift]字符串根据索引获取指定字符,依据ASCII实现字符和整数的相互转换

    ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧 ...

随机推荐

  1. [转] Android 4.4中播放HTML5视频<video>的Bug

    近期Nexus 4手机自动升级到Android4.4,本来挺好的一件事儿,结果发现自己的应用中出现一个Bug,应用中使用了Webview播放HTML5视频,代码如下: <video width= ...

  2. PP常用bapi

    PPCO0012 co01/CO02/CO03屏幕bapi  生产订单:显示/更改订单抬头数据 PPCO0001 开发应用程序: PP订单 PPCO0007 保存生产订单时退出 PPCO0001  A ...

  3. C# Winform学习---MDI窗体的设计,PictureBox控件(图片上一页下一页),Timer控件,MenuStrip控件

    一.MDI窗体的设计 1.MDI简介 MDI(Multiple Document Interface)就是所谓的多文档界面,与此对应就有单文档界面 (SDI), 它是微软公司从Windows 2.0下 ...

  4. 发送短信MFMessageComposeViewController

    if([MFMessageComposeViewController canSendText]) { MFMessageComposeViewController * controller = [[M ...

  5. hdu 5876 (补图BFS) Sparse Graph

    题目:这里 题意: 相当于一开始给一个初始好了的无向完全图给你,然后给让你删除m条边,再给你一个点v,最后问你在剩下的图里从这个点v出发能到达所有边点的最小路径是多少? 一看是所有点的最小路径,一看就 ...

  6. Flask 备注一(单元测试,Debugger, Logger)

    Flask 备注一(单元测试,Debugger, Logger) Flask是一个使用python开发Web程序的框架.依赖于Werkzeug提供完整的WSGI支持,以及Jinja2提供templat ...

  7. Unix权限管理

    // */ // ]]> Unix权限管理 Table of Contents 1 Unix权限管理 2 进程权限 3 文件权限 4 进程对文件的存取访问的权限校验过程 1 Unix权限管理 权 ...

  8. 20151214study

    An important quality of steel is its strength. (1)钢铁的最重要品质是其强度.She made a quick decision.她做了一个很快的决定. ...

  9. workflow GetListIdByName 获取表名

    1.Assign   获取表的地址 和表名 2.HttpsendWithSuspend==HttpSend 3.ParseDynamicValue 4.GetDynamicValuePropertie ...

  10. ue4 FPaths各目录

    GetWrappedLaunchDir() 启动时的工作目录,因为马上要把工作目录改为下面所说的exe所在目录,所以会先把当前的缓存起来 FPlatformProcess::BaseDir() 这个是 ...