相关疑难解决方法(0)

在Swift编程语言中获取字符串的第n个字符

如何获取字符串的第n个字符?我尝试了托架([])访问器没有运气.

var string = "Hello, world!"

var firstChar = string[0] // Throws error
Run Code Online (Sandbox Code Playgroud)

错误:'subscript'不可用:不能使用Int下标String,请参阅文档注释以供讨论

string collections character swift

392
推荐指数
20
解决办法
27万
查看次数

查找Swift 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中缺少的东西更感兴趣.

string swift

194
推荐指数
10
解决办法
22万
查看次数

在Swift中逐行读取文件/ URL

我正在尝试读取一个给定的文件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万行.它们可能包含欧洲字符和/或带重音的字符.

macos file input stream swift

72
推荐指数
3
解决办法
4万
查看次数

删除字符串中的最后两个字符(Swift 3.0)

有没有快速的方法来删除Swift 3.0中的字符串中的最后两个字符?我看到有一个简单的方法来删除最后一个字符作为明确指出这里.你知道如何删除最后两个字符吗?谢谢!

string ios swift swift3

54
推荐指数
3
解决办法
4万
查看次数

删除Swift 3中的最后一个字符

我正在创建一个简单的计算器应用程序,目前正在努力删除我的按钮被点击时的最后一个字符.我正在使用该dropLast()方法,但我一直收到错误

在调用中缺少参数#1的参数

@IBAction func onDelPressed (button: UIButton!)  {
     runningNumber = runningNumber.characters.dropLast()
     currentLbl.text = runningNumber
}
Run Code Online (Sandbox Code Playgroud)

ios swift3

7
推荐指数
1
解决办法
9369
查看次数

如何删除Swift 4中字符串的最后一个字符?

如何删除Swift 4中字符串的最后一个字符?我曾经substring在早期版本的Swift中使用,但该substring方法已被弃用.

这是我的代码.

temp = temp.substring(to: temp.index(before: temp.endIndex))
Run Code Online (Sandbox Code Playgroud)

string substring swift swift4

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

swift ×5

string ×4

ios ×2

swift3 ×2

character ×1

collections ×1

file ×1

input ×1

macos ×1

stream ×1

substring ×1

swift4 ×1