26
我有一個字符串,我需要掃描每個「foo」出現的地方並讀取它後面的所有文本,直到第二個"
。 由於Rust對於字符串沒有contains
函數,因此我需要通過掃描字符進行迭代。我將如何做到這一點?如何遍歷字符串
編輯:鐵鏽的&str
有contains()
和find()
方法。
我有一個字符串,我需要掃描每個「foo」出現的地方並讀取它後面的所有文本,直到第二個"
。 由於Rust對於字符串沒有contains
函數,因此我需要通過掃描字符進行迭代。我將如何做到這一點?如何遍歷字符串
編輯:鐵鏽的&str
有contains()
和find()
方法。
我需要通過掃描字符進行迭代。
.chars()
method返回字符串中字符的迭代器。例如
for c in my_str.chars() {
// do something with `c`
}
for (i, c) in my_str.chars().enumerate() {
// do something with character `c` and index `i`
}
如果您對每個字符的字節偏移量感興趣,可以使用char_indices
。
查看.peekable()
,並使用peek()
展望未來。它是這樣包裝的,因爲它支持UTF-8代碼點,而不是簡單的字符向量。
您還可以創建的char
秒的載體,並從那裏進行這項工作,但是這更多的時間和空間密集型:
let my_chars: Vec<_> = mystr.chars().collect();
能告訴你的一些投入與預期的產出的例子嗎?它將幫助我們更清楚地看到你準備完成的任務。 – csmckelvey
這裏有一個這樣的循環的例子http://rustbyexample.org/loops.html,雖然我認爲那裏有更簡單的方法。 –
請注意,有許多字符串搜索算法,它們的時間複雜度不是一個簡單的方法('O(n * m)')。 http://en.wikipedia.org/wiki/String_searching_algorithm – VasyaNovikov