如何反转句子?求实现字符串(非向量)单词反转的函数
实现字符串单词反转的R函数
没问题,我帮你搞定这个需求!你需要的是单词级别的反转,而不是单个字符的反转,所以思路很明确:先把句子拆成独立单词,反转单词顺序后再拼回去就行。
直接上符合你要求的函数代码:
rev_sentence <- function(input_str) { # 第一步:把输入字符串按空格拆分成单词列表 word_list <- strsplit(input_str, " ")[[1]] # 第二步:反转单词列表的顺序 reversed_word_list <- rev(word_list) # 第三步:把反转后的单词用空格拼接成完整字符串 paste(reversed_word_list, collapse = " ") }
来测试你给的示例看看效果:
rev_sentence("hi i'm five") # 输出结果:[1] "five i'm hi"
简单聊下逻辑
你之前写的单个字符反转函数,应该是针对单个字符串的字符顺序反转(比如把"test"变成"tset"),但句子反转需要先把整个字符串拆成「单词单元」——这里用strsplit()按空格拆分,得到单词向量后,用R内置的rev()反转向量顺序,最后用paste()加collapse参数把单词重新粘成句子就搞定了。
如果遇到多个连续空格的情况,你可以把strsplit的分隔符改成"\\s+"(匹配任意数量的空白字符),这样拆分出来的单词就不会有空字符串啦,比如:
rev_sentence("hi i'm five") # 多个空格的情况 # 输出还是:[1] "five i'm hi"
内容的提问来源于stack exchange,提问作者Jake
相关产品推荐
相关产品推荐

