Menu
CoddyTech

使用 substr() 获取子字符串

本课属于 Coddy R 学习旅程的“逻辑与流程”单元。第 1 课,共 64 课。

substr(x, start, stop)会返回x中从位置start到位置stop(包括这两个位置)的字符。位置从 1 开始,和向量索引一样。

word <- "programming"
print(substr(word, 1, 7))
print(substr(word, 4, 6))

输出:

[1] "program"
[1] "gra"

要从末尾提取字符,请使用 nchar() 计算位置:

code <- "INV-2024-0042"
n <- nchar(code)
print(substr(code, n - 3, n))

输出:

[1] "0042"

超过末尾的 stop 会截取到最后一个字符,而大于 stop 的 start 会得到一个空字符串:

print(substr("cat", 2, 10))
print(substr("cat", 3, 1))

输出:

[1] "at"
[1] ""

substr() 会一次处理字符向量中的每个元素:

days <- c("Monday", "Tuesday", "Wednesday")
print(substr(days, 1, 3))

输出:

[1] "Mon" "Tue" "Wed"

给 substr() 赋值会就地覆盖字符。字符串长度保持不变:

id <- "user-0000"
substr(id, 6, 9) <- "1234"
print(id)

输出:

[1] "user-1234"
challenge icon

挑战

简单

补全 short_code(city),让它以大写字母返回 city 的前三个字母。对于 london,它会返回 LON。

提供的代码会从输入中读取城市名称,并将返回值单独打印在一行上。

亲手试试

short_code <- function(city) {
  # 在这里编写你的代码
  ""
}

# 提供的输入和输出代码:保持原样
input <- suppressWarnings(readLines(file("stdin")))
cat(short_code(input[1]), sep = "\n")
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: R 在线编译器