我有一个循环读取很多字符串,每个字符串包含由char(¥)分割的信息。 对于这个循环,我只需要最终值,我知道索引。我想知道使用string.split是否更好,或者使用substring.lastindexof。
如果有帮助,拆分索引为8。
哪个会更快。 另外,我选择的char对分裂有什么影响吗? (例如,¥vs`“)
感谢。
答案 0 :(得分:0)
人们似乎倾向于字符串(lastindexof)而不是string.split - 我只是做了一个小的计时器测试,看看哪个更快。
For count As Integer = 0 To existing.Count - 1
If File.Exists(existing(count).Substring(existing(count).LastIndexOf("¥") + 1)) Then 'File.Exists(existing(count).Split(CChar("¥"))(8)) Then
outputfile.Add(existing(count))
Else
outputfile.Add(String.Empty)
End If
Next
现在,这种情况下的字符串用于mp3标记信息和路径。它们通常看起来像
“在凯旋演示中使用¥Apostle在凯旋演示中的使徒¥1:41¥1¥1984¥渐进式死亡/厄运/民间金属¥C:\用户\黑色\音乐\操作\使者在凯旋演示中\ Opeth - Aumptle In Triumph Demo Part 1.mp3“
因此它会检查文件是否存在(使用existing(count).split(cchar("¥"))(8))
或existing(count).Substring(existing(count).lastindexof("¥") + 1)
)到8022字符串,然后将值放入列表中。
在我测试这两种方法的10次中,分割方法总是更快 - 平均减少32毫秒,或者快2.27%。
我做错了吗?