我熟悉函数toupper()
和tolower()
,但这并不完全符合我的要求。这是我拥有的字符串和我想要的字符串的示例:
this = "This is the string THAT I have!"
that = "tHIS IS THE STRING that i HAVE!"
简单到用一个例子描述,更难实现(我认为)。
谢谢!
答案 0 :(得分:5)
如果有更好的方法,我有点好奇:
chartr(x = this,
old = paste0(c(letters,LETTERS),collapse = ""),
new = paste0(c(LETTERS,letters),collapse = ""))
@Joris在?chartr
注意到您可以使用字符范围,避免使用paste
:
chartr("a-zA-Z", "A-Za-z",this)
答案 1 :(得分:0)
这是一种适用于a
和z
/ A
和Z
之间的字符的方法:
text <- "aBàÉ"
up <- gregexpr("\\p{Lu}", text, perl=TRUE)
lo <- gregexpr("\\p{Ll}", text, perl=TRUE)
regmatches(text,up)[[1]] <- tolower(regmatches(text,up)[[1]])
regmatches(text,lo)[[1]] <- toupper(regmatches(text,lo)[[1]])
text
#> [1] "AbÀé"