黑马程序员技术交流社区
标题:
在VS中控制台程序里,怎么做下面的题?
[打印本页]
作者:
qly2046
时间:
2013-12-16 19:56
标题:
在VS中控制台程序里,怎么做下面的题?
本帖最后由 qly2046 于 2013-12-20 15:30 编辑
计算字符串中每种字符出现的次数。“Welcome to Chinaworld”,不区分大小写,打印“W 2”“e 2”“l 3”……
作者:
再起来
时间:
2013-12-17 10:24
本帖最后由 再起来 于 2013-12-17 10:25 编辑
class Program
{
static void Main(string[] args)
{
string str = "Welcome to ChinaWorld";
string[] strs = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);//去掉空格
string str1 = string.Join("", strs);//将去掉空格的字符串数组拼接成一个字符串
#region MyRegion
// HashSet<char> set=new HashSet<char>();
// foreach (char ch in str1)
// {
// set.Add(ch);
// }
//char[] chs= set.ToArray();
//string str2="";
//for (int i = 0; i < chs.Length;i++ )
//{
// str2 += chs[i];
//}
#endregion
int[] count=new int[str1.Length];//定义一个数组,用来存储字符串每个字符出现的次数
for (int i = 0; i < str1.Length;i++ )//依次找出字符串中每个字符出现的次数
{
int time=0;//字符出现的次数
int position=-1;
do
{
position=str1.IndexOf(str1[i],position+1);
if (position!=-1)
{
time++;
}
} while (position!=-1);
count[i] = time;
}
for (int i = 0; i < str1.Length;i++ )
{
Console.Write("\"{0}{1}\"\t", str1[i], count[i]);
}
Console.ReadKey();
}
}
复制代码
S~3[56UESIW~I)SH(B$9$M6.jpg
(16.7 KB, 下载次数: 6)
下载附件
2013-12-17 10:23 上传
作者:
再起来
时间:
2013-12-17 10:26
亲,你要记得把帖子编辑成已经解决哈,不然木有加分哟
作者:
诱惑灵魂
时间:
2013-12-20 01:01
string str = "Hello World";
Dictionary<char, int> dic = new Dictionary<char, int>();
for (int i = 0; i < str.Length; i++)
{
if (str[i] == ' ')
{
continue;
}
if (dic.ContainsKey(str[i]))
{
dic[str[i]]++;
}
else
{
dic.Add(str[i], 1);
}
}
foreach (KeyValuePair <char,int>kv in dic)
{
Console.WriteLine("字符{0}{1}次",kv.Key,kv.Value);
}
Console.ReadKey();
通过循环添加到集合中输出就ok了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2