如何获取字符串的第n个字符?我尝试了托架([])访问器没有运气.
var string = "Hello, world!"
var firstChar = string[0] // Throws error
Run Code Online (Sandbox Code Playgroud)
错误:'subscript'不可用:不能使用Int下标String,请参阅文档注释以供讨论
我一直在使用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)
起初这些让我很困惑,所以我开始玩索引和范围.这是子串的后续问题和答案.我在下面添加一个答案来说明它们是如何使用的.
我想制作一个简单的咖啡计算器.我需要以克为单位显示咖啡量.克的"g"符号需要附加到我用来显示金额的UILabel上.UILabel中的数字正在根据用户输入动态变化,但我需要在字符串末尾添加小写"g",其格式与更新数字不同.需要将"g"附加到数字上,以便随着数字大小和位置的变化,"g"随着数字"移动".我确信这个问题已经解决了,所以正确的方向链接会有所帮助,因为我已经搜索了我的小心脏.
我在文档中搜索了一个属性字符串,我甚至从应用程序商店下载了一个"Attributed String Creator",但结果代码是在Objective-C中,我使用的是Swift.什么是令人敬畏的,并且可能对其他开发人员学习这种语言有帮助,这是使用Swift中的属性字符串创建具有自定义属性的自定义字体的明显示例.这方面的文档非常令人困惑,因为没有非常明确的方法来解决这个问题.我的计划是创建属性字符串并将其添加到coffeeAmount字符串的末尾.
var coffeeAmount: String = calculatedCoffee + attributedText
Run Code Online (Sandbox Code Playgroud)
其中calculateCoffee是一个Int转换为字符串,"attributedText"是小写的"g",其中包含我想要创建的自定义字体.也许我会以错误的方式解决这个问题.任何帮助表示赞赏!
我一直在尝试UITextField和如何使用它的光标位置.我已经找到了许多关系Objective-C答案,如
但由于我正在使用Swift,我想学习如何获取当前光标位置并在Swift中设置它.
下面的答案是我从Objective-C进行实验和翻译的结果.
我一直在使用Swift 3更新我的一些旧代码和答案,但是当我使用Swift Strings和Indexing时,理解事情是一件很痛苦的事情.
具体来说,我尝试以下方法:
let str = "Hello, playground"
let prefixRange = str.startIndex..<str.startIndex.advancedBy(5) // error
Run Code Online (Sandbox Code Playgroud)
第二行给我以下错误
'advancedBy'不可用:要将索引推进n步,请在生成索引的CharacterView实例上调用'index(_:offsetBy :)'.
我看到它String有以下方法.
str.index(after: String.Index)
str.index(before: String.Index)
str.index(String.Index, offsetBy: String.IndexDistance)
str.index(String.Index, offsetBy: String.IndexDistance, limitedBy: String.Index)
Run Code Online (Sandbox Code Playgroud)
起初这些让我很困惑所以我开始玩它们直到我理解它们.我在下面添加一个答案来说明它们是如何使用的.
我正在使用以下代码:
var continousDigitsRange:Range<Int> = Range<Int>(start: 0, end: 0)
Run Code Online (Sandbox Code Playgroud)
自从更新到Xcode 7.3(Swift 2.2)后,我得到以下提示:
'init(start:end :)'已弃用:它将在Swift 3中删除.使用'.. <'运算符.
对于我来说,如何使用"..."运算符正确地"翻译"它并不清楚.
我试图从UITextView(和/或UITextField)获取选定的文本范围,以便我可以编辑选定的文本,或修改属性字符串.我做出选择时会触发下面的方法,但方法中的代码会返回空值.
- (void)textViewDidChangeSelection:(UITextView *)textView {
UITextRange *selectedRange = [textField selectedTextRange];
NSLog(@"Start: %@ <> End: %@", selectedRange.start, selectedRange.end);
}
Run Code Online (Sandbox Code Playgroud) 我有这个代码:
VStack {
ForEach(0...2) { i in
HStack {
ForEach(0...2) { j in
Text("test")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这给了我Cannot convert value of type 'ClosedRange<Int>' to expected argument type 'Range<Int>'两个 ForEach 语句的错误
我已经看到了有关此错误的线程,并且对范围事物的工作原理有所了解,但实际上并非如此。我想知道如何解决这个错误。
我有一个unicode角色
\u{0D85}.我如何从中获得Int价值?
我打算将它们引用到另一个Stack Overflow Q&A,但我找不到一个.这些是指转换另一个方向:
这些似乎是在询问如何将字符串形式的数字转换为实际数字Int(如转换"1"为1).
我将在下面提供一个答案,而不是试图将我的答案放在对提问者的评论中.类型\u{0D85}有点不清楚,但我将涵盖各种可能性.
我不确定我在这里缺少什么,但我想要做的就是从字符串中获取子字符串.我在操场上乱搞,我的代码只有三行长行,我声明一个字符串,得到一个索引,然后尝试从中获取一个子字符串,我得到这个错误.这就是我的代码......
var name = "Stephen"
var index = name.startIndex.advancedBy(3)
var substring = name.substringToIndex(index)
Run Code Online (Sandbox Code Playgroud)
我做错了吗?我没有看到任何其他方法从字符串中获取子字符串.
在一个不相关的问题中,如果我想从索引2和5之间的字符串中获取子字符串,我将如何在Swift 2中进行该操作?
swift ×9
ios ×3
string ×3
uitextfield ×2
uitextview ×2
character ×1
collections ×1
fonts ×1
indexing ×1
integer ×1
range ×1
substring ×1
swiftui ×1
uilabel ×1
uitextrange ×1
unicode ×1
xcode7.3 ×1