Menu
CoddyTech

Tách và nối

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

trim xóa khoảng trắng ở đầu và cuối. split tách văn bản thành các phần bằng dấu phân cách, còn joinToString kết hợp các phần bằng dấu phân cách đã chọn. Những thao tác này giúp bạn chuẩn hóa dữ liệu đầu vào đơn giản được phân tách bằng dấu phân cách. Ở đây, dấu phân cách là văn bản cố định, không phải biểu thức chính quy (regular expression).

Bên trong main:

val parts = " red, blue ,green ".trim().split(",").map { it.trim() }
println(parts.joinToString(" | "))

Dấu phẩy tách các trường, trim làm sạch từng trường, rồi chương trình chèn dấu phân cách cuối cùng giữa các trường.

Hãy loại bỏ khoảng trắng ở đầu và cuối từng trường sau khi tách nếu bạn muốn xóa các khoảng trắng bao quanh trường đó.

challenge icon

Thử thách

Trung bình

Hoàn thiện cleanFields với tham số text: String. Tách văn bản tại các dấu phẩy theo nghĩa đen, xóa khoảng trắng ở đầu và cuối mỗi trường, rồi loại bỏ các trường rỗng. Trả về các trường còn lại theo thứ tự đầu vào.

Trừ khi phần trên nêu giới hạn chặt hơn, mỗi cấp của các tập hợp có tối đa 100 phần tử, còn các đối số số nguyên và giá trị số nguyên trong tập hợp nằm trong khoảng từ -1000 đến 1000. Văn bản được cung cấp để phân tích cú pháp có thể chứa các biểu diễn không hợp lệ hoặc nằm ngoài phạm vi như đã mô tả.

Trả về giá trị thuộc kiểu List<String>. Giữ nguyên code đầu vào/đầu ra được cung cấp. Code này đọc từng đối số vô hướng trên một dòng; danh sách bắt đầu bằng số lượng phần tử, sau đó là các phần tử, còn từ điển bắt đầu bằng số lượng mục, sau đó là từng khóa và giá trị. Danh sách lồng nhau lặp lại định dạng số lượng và các phần tử cho từng hàng. main được cung cấp sẽ in giá trị trả về, theo sau là một ký tự xuống dòng. Danh sách sử dụng định dạng có dấu ngoặc vuông tiêu chuẩn của Kotlin; không in thêm nhãn.

Tự làm thử

fun cleanFields(text: String): List<String> {
    // Viết lời giải của bạn ở đây.
    return emptyList()
}
fun main() {
    val text = readLine().orEmpty()
    println(cleanFields(text))
}
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: Playground Kotlin