Đếm số lần xuất hiện của chữ cái trong chuỗi vừa nhập?

Làm thế nào để đếm số lần xuất hiện của chữ cái trong chuỗi vừa nhập?

Em sử dụng Length đó

using System;
using System.Text;

public class StringClassTest
{
   public static void Main()
   {
      string characters = "abc\u0000def";
      Console.WriteLine(characters.Length);    // Displays 7
   }
}
1 Like

dùng length là mình đếm độ dài của chuỗi rồi…
ý e là nhập vào “abc\u0000def” thì a=1,b=1,c=1,…0=4…đếm từng kí tự trong chuỗi đó a.

Sorry anh nhầm. Anh nghĩ C# thì có nhiều cách sử dụng mấy hàm thư viện của nó. Nhưng mà mới học C# thì em thích tự làm hay thích xài thư viện?

Vì bài hướng dẫn theo hướng C không phù hợp nên Đạt di chuyển 19 posts đến topic: Đếm số lần xuất hiện của chữ cái trong chuỗi bằng C

1 Like

xài thư viện đi cho sướng đời :slight_smile:

1 Like

Bạn cũng có thể duyệt lại chuỗi vừa tạo sau đó bạn tạo 1 biến đếm . bạn dùng câu lệnh điều kiện trong vòng lặp nếu như trong chuỗi đó tại vị trí bất kỳ xuất hiện ký tự hay số thoả điều kiện của bạn thì bạn sẽ tăng biến đếm lên 1 lần. cứ thế cuối cùng mình sẽ in biến đếm ra. hỳ

1 Like
using System;
using System.Text;
using System.Collections.Generic;

public class StringClassTest
{
   public static void Main()
   {
        string characters = "abc\u0000deffff";
        Dictionary<char, int> counter = new Dictionary<char, int>();
        for (int i = 0; i < characters.Length; i++) {
            if (counter.ContainsKey(characters[i])) {
                counter[characters[i]]++;
            } else {
                counter[characters[i]] = 1;
            }
        }
        foreach (KeyValuePair<char, int> valuePair in counter)
        {
            Console.WriteLine(valuePair.Key + " " + valuePair.Value);
        }
    }
}
```
Đáng tiếc là '\u0000' nó lại hiểu là 1 ký tự nên count ra 1 thôi :smiley:
2 Likes

Xài LINQ cho lẹ :dancer:

using System;
using System.Linq;
					
public class Program
{
    public static void Main()
    {
        "abc\u0000deffff"
            .Where(Char.IsLetterOrDigit)
            .GroupBy(c => c)
            .Aggregate((seed, next) =>
            {
                Console.WriteLine(next.Key + ": " + next.Count());
                return seed;
            });
    }
}

Demo

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?