如何获取和删除字符串的第一个字符?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

我想通过为每个字符分配不同的值来进行一些使用字符串的二维遍历。我打算'弹出'一个字符串的第一个字符,使用它,并重复其余的字符串。

我怎样才能实现这样的事情?

x <- 'hello stackoverflow'

我希望能够做到这样的事情:

a <- x.pop[1]

print(a)

'h'
print(x)

'ello stackoverflow'
提问于
用户回答回答于

substring

x <- 'hello stackoverflow'
substring(x, 1, 1)
## [1] "h"
substring(x, 2)
## [1] "ello stackoverflow"

拥有一个pop既返回一个值又具有更新存储数据副作用的方法的想法是x面向对象编程的一个概念。所以pop我们可以用一个方法来创建一个参考类,而不是定义一个函数来操作字符向量pop

PopStringFactory <- setRefClass(
  "PopString",
  fields = list(
    x = "character"  
  ),
  methods = list(
    initialize = function(x)
    {
      x <<- x
    },
    pop = function(n = 1)
    {
      if(nchar(x) == 0)
      {
        warning("Nothing to pop.")
        return("")
      }
      first <- substring(x, 1, n)
      x <<- substring(x, n + 1)
      first
    }
  )
)

x <- PopStringFactory$new("hello stackoverflow")
x
## Reference class object of class "PopString"
## Field "x":
## [1] "hello stackoverflow"
replicate(nchar(x$x), x$pop())
## [1] "h" "e" "l" "l" "o" " " "s" "t" "a" "c" "k" "o" "v" "e" "r" "f" "l" "o" "w"
用户回答回答于

使用此函数的stringi包装

> x <- 'hello stackoverflow'
> stri_sub(x,2)
[1] "ello stackoverflow"

所属标签

可能回答问题的人

  • 天使的炫翼

    15 粉丝531 提问35 回答
  • 旺仔小小鹿

    社区 · 运营 (已认证)

    48 粉丝0 提问27 回答
  • 富有想象力的人

    2 粉丝0 提问26 回答
  • 发条丶魔灵1

    6 粉丝525 提问25 回答

扫码关注云+社区

领取腾讯云代金券