【问题标题】:Shift alphabetical characters in string移动字符串中的字母字符
【发布时间】:2021-12-29 00:56:05
【问题描述】:

假设我有一个字符串:

s <- 'hello world zzz'

我想将字母字符上移一位。

所以:

  • a 变为 b

  • b 变为 c

  • c 变为 d

  • d 变为 e

等等……

  • w 变为 x

  • x 变为 y

  • y 变为 z

还有:

  • z 变为 a

另一个条件是如果有不在字母表中的字符(在本例中为空格),则保持字符原样,因此空格保持为空格。


这一切都有可能吗?

我想要的输出是:

ifmmp xpsme aaa

我试过了:

new <- c()
for (i in s) 
    {
    new <- c(new, 'abcdefghijklmnopqrstuvwxyz'[which('abcdefghijklmnopqrstuvwxyz' == i) + 1])
    }

print(new)

但它不起作用......它什么也没输出。

有什么办法吗?

【问题讨论】:

  • 虽然不完全符合您的要求,但之前的问题是关于 rot-13 in R

标签: r string character alphabet


【解决方案1】:
chartr("abcdefghijklmnopqrstuvwxyz", "bcdefghijklmnopqrstuvwxyza", 'hello world zzz')
# [1] "ifmmp xpsme aaa"

(我从来没有理由使用的功能...)

【讨论】:

  • 天啊...我怎么没想到!
  • 你也可以使用:chartr(letters, c(letters[-1], 'a'), 'hello world zzz')
  • 你应该编辑它
  • 嗯...我得到argument 'old' has length &gt; 1 and only the first element will be used(也适用于'new')。它会在没有警告的情况下为您工作吗?
  • 它对我有用...
猜你喜欢
  • 2016-01-01
  • 2013-12-13
  • 2019-04-26
  • 1970-01-01
  • 1970-01-01
  • 2021-09-19
  • 2013-08-25
  • 1970-01-01
  • 2019-07-01
相关资源
最近更新 更多