我需要在Python的切片表示法上有一个很好的解释(引用是一个加号).
对我来说,这种符号需要一点点提升.
它看起来非常强大,但我还没有完全了解它.
我一直在使用Swift 3更新我的一些旧代码和答案但是当我使用子字符串获取Swift字符串和索引时,事情变得令人困惑.
具体来说,我尝试以下方法:
let str = "Hello, playground"
let prefixRange = str.startIndex..<str.startIndex.advancedBy(5)
let prefix = str.substringWithRange(prefixRange)
Run Code Online (Sandbox Code Playgroud)
第二行给我以下错误
'String'类型的值没有成员'substringWithRange'
我看到现在String确实有以下方法:
str.substring(to: String.Index)
str.substring(from: String.Index)
str.substring(with: Range<String.Index>)
Run Code Online (Sandbox Code Playgroud)
起初这些让我很困惑,所以我开始玩索引和范围.这是子串的后续问题和答案.我在下面添加一个答案来说明它们是如何使用的.
如何使用Swift从String变量中删除最后一个字符?在文档中找不到它.
这是完整的例子:
var expression = "45+22"
expression = expression.substringToIndex(countElements(expression) - 1)
Run Code Online (Sandbox Code Playgroud) 在Objective-c中,我们使用NSRange创建范围
NSRange range;
Run Code Online (Sandbox Code Playgroud)
那么如何在Swift中创建范围呢?
我想添加一个简单的搜索字段,想使用类似的东西
collectionRef.where('name', 'contains', 'searchTerm')
我尝试过使用where('name', '==', '%searchTerm%'),但它没有返回任何东西.
我想知道如何格式化我用于电话号码的textField(例如iPhone上的"添加新联系人"页面.当我输入新的手机时,例如1236890987,它将其格式化为(123 )689-0987.)我已经将键盘设置为数字键盘.
我有一根绳子
let stringPlusString = TextBoxCal.text
Run Code Online (Sandbox Code Playgroud)
我想得到最后一个字符stringPlusString我不想在java上使用数组charAt但我在swift上找不到这个关键字
在斯威夫特4,当我尝试采取我得到这个错误Substring上String使用标语法.
'subscript'不可用:不能使用CountableClosedRange下标String,请参阅文档注释以供讨论
例如:
let myString: String = "foobar"
let mySubstring: Substring = myString[1..<3]
Run Code Online (Sandbox Code Playgroud)
两个问题:
我想将a的第一个字母String作为a String而不是Character:
func firstLetter() -> String {
return self.title[0]
}
Run Code Online (Sandbox Code Playgroud)
但是,有了以上我得到Character is not convertible to String.将字符转换为字符串的正确方法是什么?
这个答案建议创建一个下标扩展,但声明String已经有一个下标方法:
subscript (i: String.Index) -> Character { get }
Run Code Online (Sandbox Code Playgroud)
那个答案是否过时了,还是这两个不同的东西?