Menu
CoddyTech

Các hàm xử lý chuỗi

Thuộc phần Kiến thức nền tảng trong hành trình R của Coddy. Bài học 66 trên 78.

Giờ bạn đã biết cách tách chuỗi thành các ký tự, hãy cùng tìm hiểu một vài hàm thiết yếu để làm việc với chuỗi trong R. Những hàm này giúp bạn đo độ dài, kết hợp và biến đổi dữ liệu văn bản.

Hàm nchar() trả về số ký tự trong một chuỗi:

word <- "hello"
print(nchar(word))

Đầu ra:

[1] 5

Để kết hợp nhiều chuỗi thành một, hãy dùng paste(). Theo mặc định, hàm này phân tách các phần tử bằng dấu cách:

result <- paste("Hello", "World")
print(result)

Đầu ra:

[1] "Hello World"

Dùng paste0() khi bạn không muốn có dấu phân cách giữa các chuỗi:

result <- paste0("Hello", "World")
print(result)

Đầu ra:

[1] "HelloWorld"

Để chuyển đổi chữ hoa và chữ thường, R cung cấp toupper() và tolower():

print(toupper("hello"))
print(tolower("WORLD"))

Đầu ra:

[1] "HELLO"
[1] "world"

Các hàm này trở nên mạnh mẽ khi kết hợp với những kỹ thuật lặp mà bạn đã học, giúp bạn xử lý và biến đổi văn bản theo từng ký tự hoặc toàn bộ chuỗi.

challenge icon

Thử thách

Dễ

Bạn sẽ nhận hai dòng đầu vào:

  1. Tên (ví dụ: john)
  2. Họ (ví dụ: SMITH)

Thực hiện các thao tác sau:

  1. Chuyển tên thành chữ hoa bằng toupper()
  2. Chuyển họ thành chữ thường bằng tolower()
  3. Kết hợp chúng thành họ tên đầy đủ bằng paste() (có một dấu cách ở giữa)
  4. Tính tổng số ký tự trong họ tên đầy đủ (bao gồm cả dấu cách) bằng nchar()
  5. Tạo tên người dùng bằng cách kết hợp tên và họ, không có dấu phân cách, bằng paste0(), tất cả đều viết thường
  6. In họ tên đầy đủ
  7. In số lượng ký tự
  8. In tên người dùng

Ví dụ, nếu đầu vào là:

alice
WONDER

Đầu ra sẽ là:

[1] "ALICE wonder"
[1] 12
[1] "alicewonder"

Giải thích: Tên "alice" chuyển thành "ALICE" (chữ hoa), họ "WONDER" chuyển thành "wonder" (chữ thường). Họ tên đầy đủ "ALICE wonder" có 12 ký tự (bao gồm cả dấu cách). Tên người dùng kết hợp tên và họ viết thường, không có dấu phân cách: "alicewonder".

Tự làm thử

# Đọc đầu vào
con <- file("stdin", "r")
first_name <- suppressWarnings(readLines(con, n = 1))
last_name <- suppressWarnings(readLines(con, n = 1))
close(con)

# TODO: Viết code của bạn bên dưới
# 1. Chuyển first_name thành chữ in hoa bằng toupper()
# 2. Chuyển last_name thành chữ thường bằng tolower()
# 3. Ghép chúng thành full_name bằng paste()
# 4. Đếm số ký tự bằng nchar()
# 5. Tạo username bằng paste0() (toàn chữ thường)

# In ra kết quả
print(full_name)
print(char_count)
print(username)
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch R online