let nsString = NSString("Some string")
let nsRange = NSRange(5...10)
type(of: nsString.substring(with: nsRange))
// => String.Type
如何做到这一点,但返回NSString
而不是String
。我不是在寻找使用Range的解决方案
基准代码:
let string = String(repeating: "This is it. ", count: 10000)
let i1 = 19000
let i2 = 19020
// time computation
func tc(computation: (Int, Int) -> Void) {
let startTime = DispatchTime.now()
for i in 0..<100 {
computation(i1 + i, i2 + i)
}
let endTime = DispatchTime.now()
let ns = (endTime.uptimeNanoseconds - startTime.uptimeNanoseconds)
print("Time: \(ns)")
}
tc { (s1, s2) in
let start = string.index(string.startIndex, offsetBy: s1)
let end = string.index(start, offsetBy: s2 - s1)
string[start..<end]
}
tc { (s1, s2) in
(string as NSString).substring(with: NSRange(s1..<s2))
}
< code >字符串块
:< code > 55 _ 394 _ 353 ns
NS 字符串块
:1_389_647ns
- 快 39.86 倍
这些已经做了100次了,对吗?
let start = string.index(string.startIndex, offsetBy: s1)
let end = string.index(string.startIndex, offsetBy: s2)
如何执行此操作:
let start = string.index(string.startIndex, offsetBy: s1)
let end = string.index(string.startIndex, offsetBy: s2)
tc {
string[start..<end]
}
现在哪款更优化
难道不能将 NS 字符串转换为字符串,反之亦然吗?
let string = NSString("nsString") as String
let nsString = String("string") as NSString
GETRANGE key start end 返回key 中字符串值的子字符串,字符串的截取范围由start 和end 两个偏移量决定(包括start 和end 在内)。可以使用负值,字符串右面下标是从-1开始的。 注意返回值处理: 1: start>=length, 则返回空字符串 2: stop>=length,则截取至字符结尾 3: 如果start 所处位置在stop右边, 返回空字符串
我有两根绳子 在两种情况下,我应该删除
问题内容: 我猜我正在收到此错误,因为字符串正在尝试对值进行子字符串化。但是那部分不能消除这个问题吗? 这是Java代码段: 我收到此错误: 问题答案: 我猜我正在收到此错误,因为字符串试图将Null值作为子字符串。但是“ .length()> 0”部分不能消除该问题吗? 不,在itemdescription为null时调用itemdescription.length()不会生成StringInd
问题内容: 有没有一种方法可以在Python中对字符串进行子字符串化,以从第三个字符到字符串末尾获取新的字符串? 也许喜欢吗? 如果离开第二部分意味着“直到最后”,而如果离开第一部分,它是否从头开始? 问题答案: Python称这个概念为“切片”,它不仅适用于字符串,还适用于更多的领域。看看这里的一个全面的介绍。
对性能是否有影响? 不同Java版本的行为是否有差异?
以下endpoint以字符串形式返回用户名。 我如何构造它以返回一个json对象,该对象包含一个键,该键的值为该字符串(例如,{“user”:“joeuser”})?