如何获取字符串的第n个字符?我尝试了托架([])访问器没有运气.
var string = "Hello, world!"
var firstChar = string[0] // Throws error
Run Code Online (Sandbox Code Playgroud)
错误:'subscript'不可用:不能使用Int下标String,请参阅文档注释以供讨论
现在是承认失败的时候了......
在Objective-C中,我可以使用类似的东西:
NSString* str = @"abcdefghi";
[str rangeOfString:@"c"].location; // 2
Run Code Online (Sandbox Code Playgroud)
在Swift中,我看到类似的东西:
var str = "abcdefghi"
str.rangeOfString("c").startIndex
Run Code Online (Sandbox Code Playgroud)
...但是这只是给了我一个String.Index,我可以使用它来下标回原始字符串,但不从中提取位置.
FWIW,String.Index有一个私人ivar _position,它具有正确的价值.我只是看不出它是如何曝光的.
我知道我可以轻松地将它添加到String中.我对这个新API中缺少的东西更感兴趣.
我正在尝试读取一个给定的文件NSURL并将其加载到一个数组中,其中的项目由换行符分隔\n.
这是我到目前为止的方式:
var possList: NSString? = NSString.stringWithContentsOfURL(filePath.URL) as? NSString
if var list = possList {
list = list.componentsSeparatedByString("\n") as NSString[]
return list
}
else {
//return empty list
}
Run Code Online (Sandbox Code Playgroud)
出于几个原因,我对此并不满意.一,我正在处理从几千字节到几百MB的文件.你可以想象,使用这么大的字符串是缓慢而笨拙的.其次,这会在执行时冻结UI - 再次,不好.
我已经考虑在一个单独的线程中运行此代码,但我一直遇到麻烦,此外,它仍然无法解决处理大字符串的问题.
我想做的是下面的伪代码:
var aStreamReader = new StreamReader(from_file_or_url)
while aStreamReader.hasNextLine == true {
currentline = aStreamReader.nextLine()
list.addItem(currentline)
}
Run Code Online (Sandbox Code Playgroud)
我如何在Swift中实现这一目标?
关于我正在阅读的文件的一些注意事项:所有文件都由短或(\n或255个字符)字符串组成,由或者分隔\r\n.文件的长度范围从~100行到超过5000万行.它们可能包含欧洲字符和/或带重音的字符.
有没有快速的方法来删除Swift 3.0中的字符串中的最后两个字符?我看到有一个简单的方法来删除最后一个字符作为明确指出这里.你知道如何删除最后两个字符吗?谢谢!
我正在创建一个简单的计算器应用程序,目前正在努力删除我的按钮被点击时的最后一个字符.我正在使用该dropLast()方法,但我一直收到错误
在调用中缺少参数#1的参数
@IBAction func onDelPressed (button: UIButton!) {
runningNumber = runningNumber.characters.dropLast()
currentLbl.text = runningNumber
}
Run Code Online (Sandbox Code Playgroud) 如何删除Swift 4中字符串的最后一个字符?我曾经substring在早期版本的Swift中使用,但该substring方法已被弃用.
这是我的代码.
temp = temp.substring(to: temp.index(before: temp.endIndex))
Run Code Online (Sandbox Code Playgroud)