Menu
CoddyTech

Tách và nối

Thuộc phần Logic và luồng chương trình trong hành trình GDScript của Coddy. Bài học 4 trên 78.

Bạn đã tách chuỗi bằng split() và nối các mảng bằng join(). Cả hai còn làm được nhiều hơn thế.

Các phần tử của split() là chuỗi, đúng như cách chúng xuất hiện giữa các dấu phân tách, bao gồm cả khoảng trắng. Hãy làm sạch hoặc chuyển đổi từng phần tử trước khi sử dụng. Bạn có thể thay thế một phần tử trong kết quả thông qua chỉ số của nó:

var items := "sword, shield ,bow".split(",")
print(items)
for i in range(items.size()):
	items[i] = items[i].strip_edges()
print(items)
["sword", " shield ", "bow"]
["sword", "shield", "bow"]

Đối số thứ hai của split() là điều bạn đã gặp trước đó: true giữ lại các phần rỗng, còn false loại bỏ chúng. Đối số thứ ba giới hạn số lần tách. split(" ", true, 1) chỉ tách ở khoảng trắng đầu tiên, phân tách lệnh với phần còn lại của dòng:

print("say hello there".split(" ", true, 1))
["say", "hello there"]

rsplit() hoạt động tương tự nhưng đếm các vị trí cắt từ bên phải, nên có thể cắt tại dấu chấm cuối cùng trong tên tệp:

print("save.backup.json".rsplit(".", true, 1))
["save.backup", "json"]

join() cũng nhận một mảng số và chuyển từng số thành văn bản: ", ".join([3, 1, 2]) cho kết quả "3, 1, 2".

challenge icon

Thử thách

Dễ

Chương trình đọc một dòng gồm các từ được phân tách bằng dấu phẩy vào line. Có thể có khoảng trắng quanh các từ, ví dụ red, green ,blue.

In ra ba dòng:

  1. Số lượng từ
  2. Các từ đã bỏ khoảng trắng xung quanh, viết hoa và nối bằng > (dấu cách, dấu lớn hơn, dấu cách)
  3. Từ dài nhất, không có khoảng trắng. Nếu có nhiều từ cùng độ dài, in ra từ đầu tiên

Với đầu vào red, green ,blue, đầu ra là:

3
RED > GREEN > BLUE
green

Tự làm thử

extends Node

func _ready():
	var line := OS.read_string_from_stdin()
	# In ra số lượng, các từ đã nối và từ dài nhất
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 Logic và luồng chương trình

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