【问题标题】:How to find an index of a substring within an array of strings in iOS swift如何在iOS swift中的字符串数组中查找子字符串的索引
【发布时间】:2019-05-09 20:15:08
【问题描述】:

我目前有一个由换行符分隔的字符串数组。我需要以这 16 个字符开头的特定元素的索引(“dayTime”是变量名)。我知道这只会在数组中发生一次。我创建了第二个数组,它是第一个被截断为每个元素的前 16 个字符的数组,运行时我的索引为零。

let newlineChars = NSCharacterSet.newlines
let lineArray = contents.components(separatedBy: newlineChars).filter{!$0.isEmpty}

let array2 = lineArray.prefix(16)

let indexOfdayTime = array2.firstIndex(of: dayTime)
print ("This is the INDEX OF day time: ", indexOfdayTime)

我期望和索引值不为零。

【问题讨论】:

  • 仅供参考 - 不要在 Swift 中使用 NSCharacterSet。使用CharacterSet
  • “我创建了第二个数组,它是第一个被截断为每个元素前 16 个字符的数组”。不,您发布的代码创建了一个新数组,其中包含原始数组的前 16 个元素。打印array2,您将看到您的问题。
  • 一般情况下,请显示实际代码。发布您的代码并让我们知道contents 是什么以及dayTime 是什么,这不是一种有用或有效的提问方式。
  • 好的,我现在明白这是怎么回事了,所以谢谢你。但是如何创建第二个数组,其中每个元素是原始数组中相同索引处元素的前 16 个字符?

标签: arrays swift string indexing


【解决方案1】:

我会使用这一行来查找字符串

let indexOfdayTime = array2.firstIndex { $0.starts(with: dayTime) }

如果您仍想从每行中获取前 16 个字符,您可以使用 map

let array2 = lineArray.map { $0.prefix(16)}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多