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?
Đế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
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ẹ
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;
});
}
}
2 Likes