美文网首页swiftSwift&Objective-CSwift编程
Swift 5: 字符串(swift与OC混编

Swift 5: 字符串(swift与OC混编

作者: 前进的苏辰 | 来源:发表于2016-08-11 18:47 被阅读84次

1: 简介

(1):OC中字符串分为两种:可变字符串、不可变字符串。

(2):swift中的字符串String是结构体类型,所以我们的操作都是对结构体的实例值就行操作。

(3):OC中的字符串NSString是类类型,我们做的操作都是对对象进行操作。

(4)可变字符串是不可变字符串的子类,所以可变字符串继承不可变,可以使用不可变字符串的所有方法

2:不可变字符串方法

//1.创建空字符串

var str1: NSString = ""
var str2: NSString = NSString()

//2.创建简单字符串对象

var str3: NSString = "helloworld"

//3.使用格式化的方式创建字符串

//占位符:%d表示Int %@表示字符串 %f表示Float类型 %lf表示Double类型 %C表示字符型(只对OC字符串的字符有效)

var str4: NSString = NSString.init(format: "%@,%d,%.2lf", "中国",75,1234.3456789)
print(str4)
NSLog("%@", str4)

let string = String.init(format: "%2d:%2d:%2d", 12,23,56)
print(string)

//4.遍历字符串对象

//.length获取NSString字符串的字符个数

for i in 0..<str4.length {
    
    //通过下标获取字符串中的字符
    NSLog("%C", str4.characterAtIndex(i))
    //print("\(str4.characterAtIndex(i))")
}

//5.字符串的比较 (建议使用swift语言中字符串的比较方法)

var string1: NSString = "Hello"
var string2: NSString = "hello"

//swift中字符串的比较 == >= <= != 
if (string1 as String) <= (string2 as String) {
    print("左边小于右边")
}

//OC中字符串的比较
if !string1.isEqualToString(string2 as String) {
    print("不相等")
}
//OC中比较字符串的大小 区分大小
if string1.compare(string2 as String) == NSComparisonResult.OrderedAscending {
    print("左边小于右边")
}

//6.不区分大小写 比较字符串的大小

if string1.compare(string2 as String, options: NSStringCompareOptions.CaseInsensitiveSearch) == NSComparisonResult.OrderedSame {
    print("两个字符串相等")
}

//7.字符串查找 查找子串在父串中出现的范围 NSRange类型

//NSRange是结构体 有两个属性location位置 length子串的字符个数
let str_new: NSString = "helloworldhellow"

//从前向后查找
let range1 = str_new.rangeOfString("hello")
if range1.location != NSNotFound {
    print("找到了子串\(range1.location),\(range1.length)")
}

//从后向前查找
let range2 = str_new.rangeOfString("hello", options: NSStringCompareOptions.BackwardsSearch)
print(range2.location,range2.length)

//8.字符串与数字之间的转换 --- swift中也具有该方法 只是返回值是可选类型(! 强制解析)

let numStr: NSString = "123"
let int_num = numStr.intValue
print(int_num) //转换成什么类型就调用 --- 类型Value

let str_str = NSString.init(format: "%d", 100)
print(str_str)

//9.大小写转换

var lastStr: NSString = "hello"
print(lastStr.uppercaseString)

lastStr = "HELLO"
print(lastStr.lowercaseString)

//10.字符串的提取

===========重点==============

var superStr: NSString = "123456789qwertyuiasdfghj"

//从index开始(包括index)提取字符串后面的部分
let sub1 = superStr.substringFromIndex(0)

 //从字符串开始提取到index之前位置(不包括index)
let sub2 = superStr.substringToIndex(5)
print(sub2)

//在字符串中提取某个范围中的字符串
let sub3 = superStr.substringWithRange(NSRange.init(location: 1, length: 3))
print(sub3)

//11.从文件中读取内容

========重点========

//获取文件路径
var path: String = "/Users/xuli/Desktop/猪之歌.txt"

//读取内容
//1、文件路径
//2、文件内容的编码 UTF8
let contents = try! NSString.init(contentsOfFile: path, encoding: NSUTF8StringEncoding)
print(contents)

3.可变字符串方法

//1.创建空的可变字符串

let mutable1 = NSMutableString.init(capacity: 0)

//2.将不可变字符串转化成可变字符串

let mutable2 = NSMutableString.init(string: "hello world")

//3.添加

//追加
mutable2.appendString("中国")
mutable2.appendFormat("%d", 998)
print(mutable2)

//插入
mutable2.insertString("🐱🐶🐰", atIndex: 1)
print(mutable2)

//4.删除

mutable2.deleteCharactersInRange(NSRange.init(location: 0, length: 10))
print(mutable2)

//5.修改

//修改指定索引的元素
mutable2.replaceCharactersInRange(NSRange.init(location: 0, length: 1), withString: "1234567812345678")
print(mutable2)

//修改出现在指定位置的多个子字符串
//1、目标子串
//2、用来替换的子串内容
//3、查找字符串的方向
//4、替代子串的范围
mutable2.replaceOccurrencesOfString("123", withString: "♣️♠️", options: NSStringCompareOptions.BackwardsSearch, range: NSRange.init(location: 0, length: mutable2.length))
print(mutable2)

相关文章

  • Swift

    混编 15、OC与Swift的混编_海森堡_lichangan的博客-CSDN博客_oc swift 混编[htt...

  • oc Swift 混编

    oc Swift 混编 oc 项目 混编Swift1.1 oc 调用 Swift 的类 和 方法步骤: ...

  • OC与Swift混编 / Mix & Match

    OC与Swift混编 / Mix & Match OC in Swift 通过Header File创建Bridg...

  • OC和Swift混编手动创建桥接文件及命名空间

    Obj-C混编Swift && Swift混编Obj-C Swift引用OC实现通过桥接头文件,OC引用Swift...

  • Swift与OC混编

    Swift与OC混编:OC文件使用Swift文件时,引入#import (项目名字)-Swift.h。(系统帮我们...

  • iOS开发之一Swift与OC混编

    Swift与OC混编:OC文件使用Swift文件时,引入#import (项目名字)-Swift.h。(系统帮我们...

  • OC与Swift混编

    OC与Swift混编 一.objectivec与Swift相互调用对照 OC interface文件如下 转换后对...

  • 自制Framework:swift与OC混编,自定义module

    为何要swift与oc混编 在ios开发中,swift与oc的混编,几乎是不可避免的。2014年,Apple在开发...

  • OC引入Swift,混编

    一、OC中引入Swift 最近在研究swift时候,需要实现OC与Swift混编,因此总结了以下几个步骤实现OC中...

  • swift与OC混编

    swift与OC混编的总结 现在的swift开发多数会用到混编。swift和oc是通过桥接文件来实现的。无论是在o...

网友评论

    本文标题:Swift 5: 字符串(swift与OC混编

    本文链接:https://www.haomeiwen.com/subject/edjssttx.html