30/09/2018, 16:11

Đế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?

Nguyễn Minh Dũng viết 18:20 ngày 30/09/2018

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
   }
}
nhu71958 viết 18:24 ngày 30/09/2018

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.

Nguyễn Minh Dũng viết 18:21 ngày 30/09/2018

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?

Nguyễn Minh Dũng viết 18:17 ngày 30/09/2018

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

nhu71958 viết 18:24 ngày 30/09/2018

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

Thực tế khắc nghiệt viết 18:28 ngày 30/09/2018

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ỳ

Deactivated viết 18:17 ngày 30/09/2018
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:
Dang H. viết 18:28 ngày 30/09/2018

Xài LINQ cho lẹ

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

Bài liên quan
0