`

swift -> String 字符串 扩展 自定义 常用 方法

 
阅读更多
//
//  String-Extras.swift
//  Swift Tools
//
//  Created by Fahim Farook on 23/7/14.
//  Copyright (c) 2014 RookSoft Pte. Ltd. All rights reserved.
//

#if os(iOS)
import UIKit
#else
import AppKit
#endif

extension String {
	func positionOf(sub:String)->Int {
		var pos = -1
		if let range = range(of:sub) {
			if !range.isEmpty {
				pos = characters.distance(from:startIndex, to:range.lowerBound)
			}
		}
		return pos
	}
	
	func subString(start:Int, length:Int = -1)->String {
		var len = length
		if len == -1 {
			len = characters.count - start
		}
		let st = characters.index(startIndex, offsetBy:start)
		let en = characters.index(st, offsetBy:len)
		let range = st ..< en
		return substring(with:range)
	}
    
    func length() -> Int {
        return self.characters.count;
    }
	
	func urlEncoded()->String {
		let res:NSString = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, self as NSString, nil,
			"!*'();:@&=+$,/?%#[]" as CFString!, CFStringConvertNSStringEncodingToEncoding(String.Encoding.utf8.rawValue))
		return res as String
	}
	
	func urlDecoded()->String {
		let res:NSString = CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault, self as NSString, "" as CFString!, CFStringConvertNSStringEncodingToEncoding(String.Encoding.utf8.rawValue))
		return res as String
	}
	
	func range()->Range<String.Index> {
		return Range<String.Index>(startIndex ..< endIndex)
	}
}

 

分享到:
评论

相关推荐

    swift-Attributed便捷实用的属性字符串扩展

    `swift-Attributed`库提供了一种便捷且实用的方式来扩展Swift中的属性字符串功能,使开发者能够更加轻松地处理富文本。 `swift-Attributed`库的核心特性包括: 1. **链式操作**:通过链式调用方法,你可以轻松地...

    swift-Stringfication让所有对象变成字符串

    在`younatics-Stringfication-b5a40ab`这个压缩包文件中,可能包含了关于Swift中Stringfication的示例代码或者扩展,比如自定义`String`初始化方法、利用`Mirror`进行反射、实现`CustomStringConvertible`和`...

    swift-Sprinter是在iOS和MacOS上用于格式化字符串的库

    在Swift编程中,标准的字符串插值方式虽然方便,但有时并不满足所有需求,特别是在需要高度自定义格式或者处理复杂的字符串格式时。Sprinter的出现,填补了这一空白,它允许开发者使用类似于`%d`、`%s`这样的格式...

    swift-365种NativeSwift函数扩展大幅提高生产力

    这样,我们就可以在任何字符串上调用`containsCaseInsensitive`方法,而无需额外的辅助函数。 SwifterSwift库可能包含了各种各样的函数扩展,如日期操作、网络请求、JSON解析、图像处理等。这些扩展可能包括: 1. ...

    swift-url分类解决URL里面的空格中文及其他特殊字符问题

    在Swift编程中,URL(统一资源定位符)是用于标识互联网上特定资源的字符串,它包含协议、主机名、路径、查询参数等信息。然而,URL中可能存在一些不合法的字符,比如空格、中文字符以及其他特殊字符,这些字符可能...

    swift-UtilityFunction常用工具类方法扩展视图等

    在"swift-UtilityFunction常用工具类方法扩展视图等"这个主题中,我们可以探讨以下几个关键知识点: 1. **扩展(Extensions)**:Swift中的扩展允许我们为已有的类型添加新功能,无需继承。例如,我们可以为String...

    swift-SwiftBase64方便修改字符集

    在Swift编程语言中,Base64是一种常用的编码方式,用于将二进制数据转换为可打印的ASCII字符串,便于在网络传输、存储等场景下使用。`swift-SwiftBase64`是一个开源库,它提供了方便的方式来处理Base64编码和解码,...

    swift-一个属性搞定textfield的各种纯数字的最大个数价格字符串长度限制

    综上所述,通过自定义`UITextField`子类并重写其代理方法,我们可以实现对用户输入的纯数字、最大数量、价格格式和字符串长度的控制。在`PPTextField-master`项目中,你可以找到更具体的实现方式,这将帮助你更好地...

    swift-通讯录最简单的中英文混合排序封装微信通讯录demo

    在Swift中,我们可以扩展`Array`类型来添加一个新的方法,如`sortedByMixedName()`,该方法会根据中文和英文的字典顺序进行排序。这通常涉及到Unicode字符的处理,确保中文和英文都能正确比较。以下是一个简化的排序...

    swift-stringscsv文件解析转换

    首先,`swift-strings&lt;——&gt;csv文件解析转换`这个标题暗示我们将关注两个主要部分:字符串操作和CSV文件处理。Swift内置的`String`类型提供了丰富的功能,可以用于处理和解析字符串。例如,我们可以通过`split`函数...

    swift-MRCommon一系列常用的方法工具类

    MRCommon可能会提供类似于`formatString`或`replaceSubstrings`的方法,这些方法可以更方便地进行字符串操作,而无需编写复杂的循环和条件判断。 其次,MRCommon可能包含数组和字典的扩展。在Swift中,虽然标准库...

    swift-scrollText滚动文字文字滚动一句代码实现传入字符串即可

    "swift-scrollText滚动文字文字滚动一句代码实现传入字符串即可"这个标题暗示了我们可以用一种简单的方法在Swift中快速创建文字滚动效果,无需复杂的布局和动画代码。 描述中的"scrollText滚动文字,文字滚动,一句...

    swift-功能丰富的Category类型工具库

    例如,`String`的扩展可能有一个方法`containsCaseInsensitive(string:)`,用于不区分大小写地判断字符串是否包含另一个字符串。 其次,"YYCategories"可能还扩展了集合类型,如`Array`、`Dictionary`和`Set`。这...

    swift-SexyJson是一个用于Swift3中的JSON快速轻松地解析开源库

    - 解析JSON字符串或字典到Swift对象: ```swift let jsonString = "{\"name\":\"John\", \"age\":30}" let json = SexyJson.parse(jsonString) let user = json.toModel(User.self) ``` - 序列化Swift对象到...

    swift-Argo-Swift的功能JSON解析库

    static func decode(_ json: JSON) -&gt; Decoded&lt;User&gt; { return curry(self.init) &lt;^&gt; json &lt;| "name" &lt;*&gt; json &lt;| "age" } } ``` 2. **解析JSON**: 有了模型定义后,你可以使用`decode`函数将JSON数据转换为...

    IOS开发-Swift-基础知识学习笔记

    Swift有多种内置数据类型,如整型(Int)、浮点型(Double/Float)、布尔型(Bool)和字符串(String)。类型系统严格,需要在声明时指定类型。 3. 注释 Swift支持单行注释(//)和多行注释(/* */)。 4. 控制流 ...

    自定义 UIPickerView

    return data[row] // 返回对应行的字符串 } ``` 如果需要更复杂的布局或格式化,可以使用 `attributedTitleForRow:forComponent:` 返回带有样式的 `NSAttributedString`。 总结来说,自定义 `UIPickerView` 主要...

    swift-TextAttributes一个更简单的方法来组合属性字符串

    这个库提供了一个更简洁、易读的方式来创建和管理具有多种属性的字符串。 `TextAttributes`是由Swift社区开发的一个开源项目,它允许开发者以链式调用的方式设置文本属性,使得代码更加清晰和模块化。这个库特别...

    swift-一行代码搞定常见的富文本显示

    这些类提供了创建和操作带有属性(如颜色、字体等)的字符串的方法。`NSAttributedString`是不可变的,而`NSMutableAttributedString`允许我们修改其内容和属性。 标题"swift-一行代码搞定常见的富文本显示"暗示...

    swift-iOS基础控件链式编程

    , constant: CGFloat) -&gt; NSLayoutConstraint { // 添加约束实现 } } let view = UIView() .constraint(nil, to: view.topAnchor, constant: 20) .constraint(view.leadingAnchor, to: view.leadingAnchor, ...

Global site tag (gtag.js) - Google Analytics