迭代字符串字符以删除blockquotes

时间:2015-09-30 11:22:32

标签: string swift

我有一个带url的字符串,我想从字符串后删除blockquotes和字符。

字符串看起来像http://pics.v6.top.rbk.ru/v6_top_pics/resized/250xH/media/img/7/92/754435534528927.jpg\"><div>Какой-то div</div>

所以我尝试创建一个for循环,迭代遍历新字符串的每个字符,并在找到blockquotes时停止

我尝试使用代码

var value = "http://pics.v6.top.rbk.ru/v6_top_pics/resized/250xH/media/img/7/92/754435534528927.jpg\"><div>Какой-то div</div>"
var result = String()
for char in value.characters {
  var i = false
  if char == "\"" {
    let temp: Character = "\""
    result.append(temp)
    i = true
  } else if i != true {
    result.append(char)
  }
}
print(result)

但它不起作用

我也尝试,但它会导致无限循环

for char in value.characters {
  while char != "\"" {
    print("hello")
  }
}

如何正确地做到这一点?

提前致谢!

UPD - 我不需要只删除引号。我需要删除它们以及它们之后的所有内容

1 个答案:

答案 0 :(得分:1)

如果要从双引号中删除所有字符,直到字符串结尾,则更容易使用rangeOfString()

获取子字符串的索引
let value = "http://pics.v6.top.rbk.ru/v6_top_pics/resized/250xH/media/img/7/92/754435534528927.jpg\"><div>Какой-то div</div>"
if let offsetOfFirstDoubleQuote = value.rangeOfString("\"") {
  let result = value.substringToIndex(offsetOfFirstDoubleQuote.startIndex)
  print(result)
}

或更具体地说,如果分隔符始终为">

if let offsetOfDoubleQuoteGreaterThan = value.rangeOfString("\">") {
  let result = value.substringToIndex(offsetOfDoubleQuoteGreaterThan.startIndex)
  print(result)
}