Đếm số lần xuất hiện của ký tự trong chuỗi trong C#
Trong bài viết này minh sẽ hướng dẫn các bạn cách đếm số lần xuất hiện của một ký tự trong một chuỗi trong C#. Đây là một bài khá đơn giản nếu các bạn đã có kiến thức về vòng lặp while, for.
Mình sẽ thực hiện hai chương trình với hai cách khác nhau để các bạn có thể so sánh, bắt đầu thôi nào !
1. Đếm số lần xuất hiện ký tự trong chuỗi sử dụng vòng lặp
Trong chương trình này mình sẽ sử dụng vòng lặp while và for để lặp từng ký tự trong chuỗi. Sau đó hiển thị các ký tự đó đồng thời số lần xuất hiện trong chuỗi ra màn hình console.
*Lưu ý: ở đây mình sẽ không hiển thị khoảng trắng, vì vậy mình sẽ sử dụng phương thức Replace()
để thay thế khoảng trắng bằng rỗng.
Bài viết này được đăng tại [free tuts .net]
using System; using System.Linq; namespace ConsoleApp5 { class Program { static void Main(string[] args) { Console.Write("Nhap vao chuoi: "); string message = Console.ReadLine(); //Xóa khoảng trắng khỏi chuỗi message = message.Replace(" ", string.Empty); //sử dụng vòng lặp while và for để lặp và đếm số lần xuất hiện của ký tự while (message.Length > 0) { Console.Write(message[0] + " : "); int count = 0; for (int j = 0; j < message.Length; j++) { if (message[0] == message[j]) { count++; } } Console.WriteLine(count); message = message.Replace(message[0].ToString(), string.Empty); } Console.WriteLine("\n ----Chuong trinh nay duoc dang tai Freetuts.net---- \n"); Console.ReadKey(); } } }
Kết quả:
2. Đếm số lần xuất hiện ký tự trong chuỗi sử dụng class Dictionary
Trong chương trình dưới đây, mình đã tạo một Dictionary để lưu trữ từng ký tự và số lượng của nó. Với đầu vào được nhập từ bàn phím, mình sẽ sử dụng vòng lặp foreach để lặp hết các ký tự trong chuỗi. Ký tự nào chưa xuất hiện trong Dictionary thì thêm nó vào và gán số lượng cho nó là 1. Nếu đã xuất hiện trong Dictionary thì tăng số lượng ký tự đó lên 1.
Sau khi đã đếm xong thì sử dụng tiếp vòng lặp foreach để hiển thị các ký tự trong Dic với số lần hiển thị của nó trong chuỗi.
*Lưu ý: Các bạn cần khai báo thư viện System.Collections.Generic;
để sử dụng Dictionary nhé.
using System; using System.Linq; using System.Collections.Generic; namespace ConsoleApp5 { class Program { static void Main(string[] args) { Console.Write("Nhap vao chuoi: "); string message = Console.ReadLine(); //khai báo và sử dụng class Dictionary lưu ký tự và số lượng Dictionary<char, int> dict = new Dictionary<char, int>(); //sử dụng vòng lặp for để lặp từng ký tự //nếu chưa có trong Dic thì thêm vào và tăng ký tự đó lên 1 //nếu tồn tại rồi thì tăng ký tự đó lên 1 foreach (char ch in message.Replace(" ", string.Empty)) { if (dict.ContainsKey(ch)) { dict[ch] = dict[ch] + 1; } else { dict.Add(ch, 1); } } //hiển thị ký tự và số lần xuất hiện ra màn hình foreach (var item in dict.Keys) { Console.WriteLine(item + " : " + dict[item]); } Console.WriteLine("\n ----Chuong trinh nay duoc dang tai Freetuts.net---- \n"); Console.ReadKey(); } } }
Kết quả:
Như vậy là chúng ta đã thực hiện xong chương trình đếm số lượng ký tự xuất hiện trong chuỗi trong C#. Các bạn hãy luyện tập thật nhiều để sử dụng nó thành thạo nhé, chúc các bạn thành công !!!