通过填充空格将字符串居中至指定长度

2023-12-13

我有一个名称向量,如下所示:

x <- c("Marco", "John", "Jonathan")

我需要通过添加前导空格和尾随空格对其进行格式化,以便名称以 10 个字符的字符串居中:

> output
# [1] "  Marco   " "   John    " " Jonathan "

我希望有一个比使用更简单的解决方案paste, rep,并计数nchar? (也许与sprintf但我不知道怎么做)。


这是一个sprintf()使用简单辅助向量的解决方案f以确定低边宽度。然后我们可以使用以下命令将宽度插入到我们的格式中*字符,取ceiling()位于右侧,以占名称中的奇数个字符。由于我们的最大字符宽度为 10,因此每个超过 10 个字符的名称将保持不变,因为我们使用以下命令调整这些宽度pmax().

f <- pmax((10 - nchar(x)) / 2, 0)

sprintf("%-*s%s%*s", f, "", x, ceiling(f), "")
# [1] "  Marco   "  "   John   "  " Jonathan "  "Christopher"

Data:

x <- c("Marco", "John", "Jonathan", "Christopher")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过填充空格将字符串居中至指定长度 的相关文章

随机推荐