Thử thách: Đếm nguyên âm
Thuộc phần Logic và luồng điều khiển trong hành trình Dart của Coddy. Bài học 64 trên 65.
Thử thách
DễTạo một hàm có tên countVowels để phân tích văn bản và đếm số nguyên âm trong đó. Thử thách này kết hợp thao tác với chuỗi, vòng lặp và logic điều kiện để giải quyết một bài toán xử lý văn bản thực tế.
Nhiệm vụ của bạn là:
- Tạo một hàm có tên
countVowelsnhận một tham sốStringduy nhất có têntext - Hàm cần đếm tất cả nguyên âm trong văn bản:
a,e,i,ovàu - Việc đếm không phân biệt chữ hoa chữ thường (cả nguyên âm viết hoa lẫn viết thường đều được tính)
- Hàm cần trả về một giá trị
intbiểu thị tổng số nguyên âm tìm thấy - Đọc một chuỗi đầu vào từ người dùng
- Gọi hàm
countVowelsvới chuỗi đầu vào - In kết quả theo đúng định dạng:
Vowel count: X(trong đó X là số nguyên âm)
Hàm của bạn cần duyệt qua từng ký tự trong chuỗi, chuyển ký tự đó thành chữ thường để so sánh và kiểm tra xem ký tự có khớp với một trong năm nguyên âm hay không. Dùng một biến đếm để theo dõi tổng số nguyên âm tìm thấy.
Ví dụ, nếu đầu vào là "Hello World", chương trình của bạn sẽ in ra:
Vowel count: 3Nếu đầu vào là "Programming", chương trình của bạn sẽ in ra:
Vowel count: 3Nếu đầu vào là chuỗi rỗng "", chương trình của bạn sẽ in ra:
Vowel count: 0Lời giải của bạn cần thể hiện cách duyệt chuỗi phù hợp, sử dụng câu lệnh điều kiện để kiểm tra ký tự nguyên âm và dùng phương thức toLowerCase() để so sánh không phân biệt chữ hoa chữ thường.
Tự làm thử
import 'dart:io';
// TODO: Tạo hàm (function) countVowels tại đây
void main() {
// Đọc đầu vào
String? text = stdin.readLineSync();
// TODO: Gọi hàm countVowels và lưu kết quả
// In kết quả ra
print('Vowel count: $result');
}Tất cả bài học trong Logic và luồng điều khiển
1Thao tác nâng cao với danh sách
Thuộc tính danh sách: đầu và cuốiTrạng thái danh sách: isEmpty và isNotEmpĐảo ngược danh sáchThêm vào danh sách: insertXóa khỏi danh sách: removeWhereTìm trong danh sách: indexOfSắp xếp danh sáchXáo trộn danh sáchÔn tập: trình sắp xếp danh sách4Thao tác nâng cao với Map
Duyệt qua MapKiểm tra khóa và giá trịCác thuộc tính của Map: khóa và giá trịThêm có điều kiện: putIfAbsentXóa mục khỏi MapMap lồng nhauÔn tập: Cập nhật kho hàng2Thao tác hàm trên danh sách
Biến đổi bằng 'map'Lọc bằng 'where'Dùng '.toList()'Kiểm tra điều kiện bằng 'any'Điều kiện với 'every'Tìm phần tử bằng 'firstWhere'Ôn tập: lọc dữ liệu5Dự án: Tính tiền giỏ hàng
Thiết lập dự ánThêm mặt hàng vào giỏ8Dự án: Trình phân tích văn bản đơn giản
Tổng quan và thiết lập dự ánĐếm ký tự3Tập hợp
Tập hợp là gì?Tạo tập hợpThêm và xóa phần tử khỏi tập hợpKiểm tra phần tử trong tập hợpChuyển danh sách thành tập hợpPhép hợp của các tập hợpPhép giao của các tập hợpPhép hiệu của các tập hợpÔn tập: danh sách khách mời không trùng lặpTự luyện tập: Trình biên dịch Dart online