Lặp qua chuỗi
Thuộc phần Kiến thức nền tảng trong hành trình Ruby của Coddy. Bài học 67 trên 88.
Giống như mảng, chuỗi trong Ruby có thể được duyệt qua từng ký tự. Phương thức each_char giúp bạn xử lý từng ký tự trong chuỗi.
Đây là cách hoạt động:
word = "Ruby"
word.each_char do |char|
puts char
endLệnh này in mỗi ký tự trên một dòng riêng: R, u, b, y. Biến khối char giữ từng ký tự một khi trình lặp duyệt qua chuỗi.
Nếu cần cả ký tự và vị trí của nó, hãy dùng each_char.with_index:
word = "Hi"
word.each_char.with_index do |char, index|
puts "#{index}: #{char}"
endKết quả in ra:
0: H
1: iMột phương thức hữu ích khác là chars, phương thức này chuyển một chuỗi thành mảng các ký tự. Nhờ vậy, bạn có thể dùng tất cả các phương thức của mảng mà bạn đã học:
letters = "abc".chars
puts letters # Đầu ra: a, b, cCác phương thức này hữu ích khi bạn cần phân tích văn bản, đếm các ký tự cụ thể hoặc biến đổi chuỗi theo từng ký tự.
Thử thách
DễĐọc một dòng đầu vào chứa một chuỗi, ví dụ: hello.
Dùng each_char.with_index để duyệt qua chuỗi và in ra từng ký tự cùng với vị trí của nó. Mỗi dòng cần theo định dạng này: Position 0: h
Sau khi in ra tất cả ký tự cùng với vị trí của chúng, hãy in ra tổng số ký tự trong chuỗi trên một dòng mới theo định dạng này: Total characters: 5
Ví dụ, nếu đầu vào là hello, đầu ra sẽ là:
Position 0: h
Position 1: e
Position 2: l
Position 3: l
Position 4: o
Total characters: 5Nếu đầu vào là Ruby, đầu ra sẽ là:
Position 0: R
Position 1: u
Position 2: b
Position 3: y
Total characters: 4Nếu đầu vào là code, đầu ra sẽ là:
Position 0: c
Position 1: o
Position 2: d
Position 3: e
Total characters: 4Nếu đầu vào là A, đầu ra sẽ là:
Position 0: A
Total characters: 1Tự làm thử
# Đọc đầu vào (input)
str = gets.chomp
# TODO: Viết code của bạn bên dưới
# Dùng each_char.with_index để lặp qua chuỗi (string)
# In ra từng ký tự (character) cùng vị trí theo định dạng: Position X: char
# In ra tổng số ký tự theo định dạng: Total characters: XBà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
4Toán tử phần 2
Toán tử logic phần 1Toán tử logic phần 2Ôn tập: logic đơn giảnToán tử logic phần 3Toán tử logic phần 42Biến và kiểu dữ liệu
Số và biếnKiểu dữ liệu chuỗiKiểu dữ liệu BooleanKiểu dữ liệu SymbolKiểm tra kiểu dữ liệuQuy ước đặt tênÔn tập: tạo biến8Vòng lặp
Vòng lặp for với khoảng giá trịVòng lặp whileThoátTiếp tụcÔn tập: giai thừaVòng lặp timesVòng lặp untilVòng lặp lồng nhauÔn tập: đầu vào động3Toán tử phần 1
Toán tử số họcToán tử moduloPhép tính số học rút gọnÔn tập: Toán cơ bảnToán tử so sánh6Nhập xuất cơ bản
In ra bằng putsIn ra bằng print và pIn ra bằng biếnNhập dữ liệu bằng getsPhương thức chompChuyển đổi kiểu dữ liệuÔn tập: Tính tuổiÔn tập: Đúng hay sai9Phương thức
Định nghĩa phương thứcTham số phương thứcGiá trị trả vềÔn tập: phương thức SigmaÔn tập: phương thức xác thựcGiá trị tham số mặc định15Theo dõi chi tiêu hằng ngày
Tổng quan dự ánThoát chương trìnhTự luyện tập: Trình biên dịch Ruby online