您的位置:首页 > 其它

【原创】打印一个string 字符串中重复字符的次数

2009-06-03 15:16 477 查看
public class MyClass
{
public static void GetNumber(string Target)
{
string MyString=Target;
while(MyString.Length!=0)
{
int i=0;
int count=0;
string s=MyString[0].ToString();
while(i <MyString.Length)
{
if(MyString[i++].ToString()==s)
count++;
}
Console.WriteLine("{0}共有个{1}",s,count);
MyString.Replace(s,"");//把等于第一个字符的都删除掉 估计改成stringbuilder 类型的更好些
}
}
public static void Main()
{
string a="aaaaaaaazzzbbbbbccccmmmmddddeeefffdddgggghhhiiaaaaiijbbbbjjjkkk";
MyClass.GetNumber(a);
Console.Read();
}
}
终极改进版如下


public static void GetNumber(string Target)
{
StringBuilder MyString=new StringBuilder(Target);
while(MyString.Length!=0) //只要长度不为零 就可以进行
{
int i=1; // 只要有长度 肯定至少有一个字符了
int count=1; // 至少一个了已经
string s=MyString[0].ToString();
while(i <MyString.Length)
{
if(MyString[i++].ToString()==s) //这块估计最耗费时间了 不用比较第一个字符了肯定相等的 直接从第二个开始比较
count++;
}
Console.WriteLine("{0}共有个{1}",s,count);
MyString.Replace(s,"");//把等于第一个字符的都删除掉
}
}

网友更好的

public void CountCharNum(string str)
{
int cnt = 0;
while ((cnt=str.Length) != 0)
{
string sub = str.Substring(0, 1);
str = str.Replace(sub, "");
cnt -= str.Length;
Console.WriteLine(sub + "=" + cnt.ToString());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐