【问题标题】:Split a string with a gap of two characters [duplicate]用两个字符的间隙分割一个字符串[重复]
【发布时间】:2018-07-30 16:25:17
【问题描述】:

我已经编写了这样的代码:

text <- "abcdef"

substring(text, first = (1:(nchar(text)/2)) * 2 - 1, last = (1:(nchar(text)/2)) * 2)

结果:

"ab" "cd" "ef"

它适用于小型字符串,但不适用于长字符串。

任何建议,我怎样才能更快地做到这一点?

【问题讨论】:

  • “但不会长久”是什么意思。请举个例子!
  • @jogo 我有一个文件长度很大的字符串。例如,想象一整本书
  • 效率见@GSee here的“g2”解决方案。
  • @zx8754 最快的方法是:sst &lt;- strsplit(x, "")[[1]] out &lt;- paste0(sst[c(TRUE, FALSE)], sst[c(FALSE, TRUE)])
  • 这就是我发布 链接的原因。

标签: r string performance split substring


【解决方案1】:

试试trimws(gsub("(.{2})", "\\1 ", text))stringi::stri_sub(text, seq(1, stringi::stri_length(text), by = 2), length = 2)

【讨论】:

  • 能否请您添加您的答案here,以便我可以将您的答案声明为已接受的答案?否则,如果人们到达这里并看到它是重复的,他们可能看不到你所说的,因为它就在窗口的底部
猜你喜欢
  • 1970-01-01
  • 2015-10-18
  • 2015-04-13
  • 1970-01-01
  • 2022-09-28
  • 1970-01-01
  • 1970-01-01
  • 2020-01-26
  • 1970-01-01
相关资源
最近更新 更多