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".
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:
- Số lượng từ
- 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) - 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
greenTự 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
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
1Chuyên sâu về chuỗi
Các phương thức của chuỗiTìm kiếm trong chuỗiThay thế và xóa khoảng trắngTách và nốiÔn tập: Kiểm tra tên người dùng7Kiểu liệt kê
Kiểu liệt kê là gì?Định nghĩa kiểu liệt kêCác giá trị của kiểu liệt kêKiểu liệt kê trong matchÔn tập: đèn giao thông10Hàm nâng cao
Trả về nhiều giá trịHàm lambda phần 1Hàm lambda phần 2Ôn tập: sắp xếp bằng lambdaHàm đệ quy phần 1Hàm đệ quy phần 2Ôn tập: tính tổng mảng lồng nhau13Hệ thống quản lý hàng tồn kho
Tổng quan dự ánThêm mặt hàng2Ra quyết định nâng cao
So khớp với biếnĐiều kiện bảo vệ trong so khớpMẫu mảngMẫu từ điểnKiểm tra thành viênÔn tập: Bộ phân tích lệnh5Ứng dụng sổ liên lạc
Hiển thị menuThêm liên hệ8Trình quản lý hồ sơ học sinh
Tổng quan dự ánThêm học sinh3Mảng nhiều chiều
Cơ bản về mảng 2 chiềuTruy cập phần tử trong mảng 2 chiềuVòng lặp lồng nhau với mảng 2 chiềuÔn tập: mảng 2 chiềuMảng răng cưaCác mẫu phổ biến với mảng 2 chiềuÔn tập: bàn cờ6Tập hợp với từ điển
Tập hợp là gì?Từ điển như một tập hợpThêm và xóaHợp và giaoHiệu tập hợpÔn tập: Xóa phần tử trùng lặp9Tổng hợp dữ liệu nâng cao
Tính tổng các giá trịTìm giá trị nhỏ nhất và lớn nhấtSắp xếp tùy chỉnhÔn tập: Sắp xếp từ điểnTự luyện tập: Trình biên dịch GDScript online