array替换 swift
2017-02-25 19:38:00 weixin_34200628 阅读数 30

数组可以存储同一个类型的多个值,而且相同的值可以多次出现在数组中的不同位置。

创建数组

1.定义数据类型有两种形式

var array1: Array<String>
var array2:[String]

2.创建一个空数组
通过初始化函数来创建一个有特定数据类型的空数组

var someInts = [Int]()

3.用字面量构造数组

import UIKit
let array:[String]=["Hello","Hi"]
let array2 = ["zhangsan",18];

4.两个数组相加来创建一个新数组

let array1 = ["张三","李四"];
let array2 = ["王五"]
print(array1+array2)

注意:
数组对于存储数据有着具体的要求,数组元素在被存储进入某个数组之前,必须明确数据类型,方法是通过显式的类型标注或者类型推断。

数组的常见操作

1.获取数组的长度
Array提供了一个count属性,用于获取数组中元素的总个数。
2.数组的遍历

let array = [11,22,33,44,55]
for element in array{
      print(element)
}

3.数组元素的增加、删除

// 定义一个可变数组
var array = ["zhangsan","lisi"]
// 在末尾追加1个元素
array.append("wangwu")
print(array)
// 向指定位置插入1个元素
array.insert("zhaoliu",at:2)
print(array)
// 删除第一个元素
array.removeFirst()
print(array)
// 删除最后一个元素
array.removeLast()
print(array)
// 删除所有的元素
array.removeAll(keepingCapacity:true)
print(array)

4.使用下标语法修改数组元素
使用下标来改变已有索引对应的元素

array[1] = "new"

如果要修改数组中的多个索引对应的元素,可以采用区间的形式表示已经存在的多个索引值。

array[1...2] =["Eight","Nine"]
2017-11-07 09:16:00 weixin_34234823 阅读数 3

数组是一个最常用的数据类型的应用程序。使用数组来组织你的应用程序的数据。具体地说,您可以使用数组类型来控制单个的元素类型,数组的元素类型。一个数组可以存储任何类型的元素从整数字符串类。迅速方便地创建数组在代码中使用一个数组文字:仅仅围绕方括号的逗号分隔的值列表。没有任何其他信息,迅速创建一个数组,包括指定的值,自动推断数组的元素类型。例如:

// An array of 'Int' elements
let oddNumbers = [1, 3, 5, 7, 9, 11, 13, 15]

// An array of 'String' elements
let streets = ["Albemarle", "Brandywine", "Chesapeake"]

您可以创建一个空数组通过指定数组的元素类型的声明。例如:

// Shortened forms are preferred
var emptyDoubles: [Double] = []

// The full type name is also allowed
var emptyFloats: Array<Float> = Array()

如果你需要一个数组与固定数量的preinitialized默认值,使用数组(重复计数:)初始值设定项。

var digitCounts = Array(repeating: 0, count: 10)
print(digitCounts)
// Prints "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]"

当您需要执行一个操作数组的所有元素,使用一个工党循环遍历该数组的内容。

for street in streets {
    print("I don't live on \(street).")
}

使用isEmpty属性快速检查是否有任何元素的数组,或者使用count属性找到数组中元素的个数。

if oddNumbers.isEmpty {
    print("I don't know any odd numbers.")
} else {
    print("I know \(oddNumbers.count) odd numbers.")
}
2015-10-16 11:58:47 a308843141 阅读数 2704

let a = "\\你好\\你好\\你好\\你好"

let abc = a.stringByReplacingOccurrencesOfString("\\", withString: "")

println(abc)


OK

        


2014-11-13 23:36:26 NapoleonBai 阅读数 2091

一天一点,好好学习

前进就是动力,动力推动前进

数组:

数组使用有序列表存储同一类型的多个值,相同的值可以多次出现在同一个数组的不同位置.

Swift数组特定于它所存储元素的类型.这与OC的NSArray和NSMutableArray不同,这两个类可以存储任意类型的对象,并且不提供所返回对象的任何特定信息.在swift中,数据值在呗存储进入某个数组之前必须明确,方法是通过显示的类型标注或类型推断,而且不是必须是Class类型.

eg:

我们创建了一个Int类型的数组,那么我们就不能往里面存储其他类型的数据.

因此,Swift中的数组是类型安全的,并且它们包含的类型必须明确.

好啦:口水话也不多说了,看Code明确一切:走起

//
//  ViewController.swift
//  SwiftArrayAndDictionary
//
//  Created by NapoleonBai on 14-11-13.
//  Copyright (c) 2014年 NapoleonBai. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.managerArray()
    }
    /**
    此函数用来管理数组
    */
    func managerArray(){
        //定义一个数组对象
        //1.不指定参数类型
        var array = ["曹操","刘备","孙权"]
        
        println("array 一共有 \(array.count) 个item")   //array 一共有 3 个item
        
        //2.指定数组类型
        var arrayTwo : [String] = ["魏","蜀","吴"]
        //如果采用 String[] ,这里会抛出error,这种做法是在开始的beta版允许
        
        if arrayTwo.isEmpty{
            //这是数组自带的方法,用来判断是否为空
            println("arrayTwo 为空,没有元素可取")

        }else{
            println("arrayTwo 第一个选项为: \(arrayTwo[0])")  //arrayTwo 第一个选项为: 魏
        }
        
        //这里的取值方式同多种语言一样,都是根据下标获取
        
        //3.创建空数组
        var arrayThree = [Int] ()
        
        //使用append添加数组元素
        arrayThree.append(999)
        
        arrayThree.append(888)
        
        
        println("arrayThree 的值为 \(arrayThree)") //arrayThree 的值为 [999, 888]
        
        //4.创建指定大小的数组,并赋值
        var arrayDoubles = [Double](count: 5, repeatedValue: 0.0)
        
        println("the arrayDoubles = \(arrayDoubles)")   //the arrayDoubles = [0.0, 0.0, 0.0, 0.0, 0.0]
        
        //so,我们怎样拼接两个数组呢?那么请看
        // 通过类型自动推测,不用指定特定类型
        var arrayOtherDoubles = Array(count: 3, repeatedValue: 99.9)
        
        // 两个数组相加,新数组的类型会根据这两个数组的类型推断出来
        // 特别注意,一般只支持同类型的数组相拼接
        var addDoubles = arrayDoubles + arrayOtherDoubles
        
        println("addDoubles = \(addDoubles)")   //addDoubles = [0.0, 0.0, 0.0, 0.0, 0.0, 99.9, 99.9, 99.9]
        
        //当然,如果
        //eg:
        var arrayTest = Array(count:2,repeatedValue:"哈哈")
        
        //var arrarAddTest = arrayDoubles + arrayTest  //error: Cannot invoke '+' with an argument list of type '(@lvalue [(Double)],@lvalue Array<String>)'
        
        var arrayTestTwo = [Int](count: 2, repeatedValue: 33)
        
       //var arrayAddTest = arrayDoubles + arrayTestTwo //error:同上种类型类似
        
        
        //继续添加arrayTwo数组中
        arrayTwo.append("三国魏")
        
        arrayTwo.append("三国蜀")
        
        arrayTwo.append("三国吴")
        //这样的话,arrayTwo中有六个元素了
        
        println("the arrayTwo = \(arrayTwo)")   //改变前:the arrayTwo = [魏, 蜀, 吴, 三国魏, 三国蜀, 三国吴]
        
        //如果我们想更换其中的元素,那么我们应该怎么做呢?
        
        //arrayTwo[6]="三国蜀黍" // fatal error: Array index out of range
        //println("the arrayTwo[6] = \(arrayTwo[6])")
        //下标越界了,不好意思,一下子就忘了哈,那如果我们遇到了该怎么处理呢?
        //先暂时保留这个问题哈
        
        arrayTwo[5] = "三国蜀黍"
        
        println("the arrayTwo = \(arrayTwo)")   //改变后:the arrayTwo = [魏, 蜀, 吴, 三国魏, 三国蜀, 三国吴]

        //如果,我们需要在某个值之间插入某个值了,怎么办?
        //下面我们就在数组第一个位置插入'小白杨'
        arrayTwo.insert("小白杨", atIndex: 0)
        
        println("the arrayTwo = \(arrayTwo)")   //the arrayTwo = [小白杨, 魏, 蜀, 吴, 三国魏, 三国蜀, 三国蜀黍]

        //然后我们发现,我们insert错了数组,于是乎,就需要删除这个值,是不是?
        //好吧,我们怎么删除呢?
        //eg:
        arrayTwo.removeAtIndex(0)
        
        println("remove index=0 item after ,the array = \(arrayTwo)")   //remove index=0 item after ,the array = [魏, 蜀, 吴, 三国魏, 三国蜀, 三国蜀黍]
        
        //看到了吧果然删除了,当然了,删除还有
        //arrayTwo.removeLast()         //移除最后一个元素
        //arrayTwo.removeAll(keepCapacity: true)    //移除所有元素
        
        //到这里,数组就差不多讲解完毕了
        //当然,上面提到一个问题,就是数组越界的问题,那么我们怎么处理呢?
        //这就很简单了嘛,判断一下下就OK了呀...嘻嘻
     
        //对了,搬回来一下下,还有很强大的数组遍历还没有提到,是不是?
        //嘻嘻,继续
        
        for tempData in arrayTwo{
            println("the tempData=\(tempData)")
            /*
            the tempData=魏
            the tempData=蜀
            the tempData=吴
            the tempData=三国魏
            the tempData=三国蜀
            the tempData=三国蜀黍
            */
        }
        //其实在前面已经说过了,只是本篇没有而已
        //为什么不需要var tempData呢?这个就是for遍历提供的方便了,in 前面的自动设置为临时变量,我们只需要负责命名即可
        //那还有没有其他遍历方式呢?请看下面
        
        for (index, value) in enumerate(arrayTwo) {
            println("第 \(index + 1) 个元素: \(value)")
            /*
            第 1 个元素: 魏
            第 2 个元素: 蜀
            第 3 个元素: 吴
            第 4 个元素: 三国魏
            第 5 个元素: 三国蜀
            第 6 个元素: 三国蜀黍
            */
        }
        /*
        这是使用全局enumerate函数来进行数组遍历,因为enumerate返回一个由每一个数据项索引值和数据值组成的元组,即可得到索引值和值,根据个人需要吧
        当然,还有更多的方式,就靠自己去挖掘了...
        开挖掘机去...嘻嘻
        那么,问题来了...
        */
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

今天的注释有点稀疏,因为想把文字多提出来写,但是发现时间又不是很多.

吃掉晚饭已是九点多,然后看点其他的东东,再研究一下这个,就很晚了... ... 

所以很多能节省就节省了...嘻嘻

不过,有什么不清楚的,可以提出来,大家一起研究研究,毕竟,我也刚开始学.

当然了,这里的code,抛开了beta版的使用方式,所以,勿怪

时间不早了,洗洗睡吧

当然,不得不多提一句:

如果用var 定义的数组,那么可以手动添加元素,比如append,insert这样,并且也可以修改:array[0]="update"

如果用let定义的数组,那么就不能了.也类似于可变和不可变之分吧


2016-11-24 09:59:53 yjw1007020425 阅读数 301

1.Array排序

  var list = Array<RateModel>() //初始化   加元素部分省略
  list = list.sort({(site1: SiteModel, site2: SiteModel) -> Bool in
            if(site1.count != site2.count){
                return site1.count > site2.count
            } else {
                return site1.id > site2.id
            }
        })

2.NSMutableArray排序

var list:NSMutableArray = NSMutableArray() //初始化   加元素部分省略
list.sortUsingComparator({
                    (s1:AnyObject!,s2:AnyObject!)->NSComparisonResult in
                    let mi1 = s1 as! SiteModel
                    let mi2 = s2 as! SiteModel
                    if mi1.name < mi2.name{
                        return NSComparisonResult.OrderedAscending
                    }else{  
                        return NSComparisonResult.OrderedDescending  
                    }
            })

这里顺便说一下,在对英文字符串排序时,我们知道规则是26个英文字母的顺序,中文排序时是根据什么呢?是unicode码值。

swift——复合类型——Array

博文 来自: mardax

Swift 数组Array

阅读数 442

Swift Array Slice

阅读数 7

没有更多推荐了,返回首页