| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 735 人关注过本帖
标题:这道题目是不是出错了? IndexOf()是查找首次出现的位置,怎么能统计出现的 ...
只看楼主 加入收藏
lxsxd
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:153
专家分:357
注 册:2014-4-15
结帖率:96.15%
收藏
已结贴  问题点数:10 回复次数:4 
这道题目是不是出错了? IndexOf()是查找首次出现的位置,怎么能统计出现的次数呢?
7-3:设一个有大小写字母的字符串和一个查询字符,使用String类的IndeoxOf来判断在该字符串中要查找的字符出现的次数。
答:这道题目是不是出的有问题。因为IndexOf()是判断第一次出现位置的方法,不是统计出现的次数。
这个题目按照自己的思路实现的代码是:
namespace 书本练习题
{
    class Program
    {
        static void Main(string[] args)
        {
            int countOne = 0;
            Console.WriteLine("请输入一个字符串:");
            string strWord = Console.ReadLine();
            Console.WriteLine("请输入一个子字符:");
            char chr = Convert.ToChar (Console.ReadLine());
            for (int i = 0; i < strWord.Length; i++)   //不是用IndexOf()判断统计出现的次数;那么用IndexOf()怎么做呢?
            {
                if (strWord[i] == chr)
                {
                    countOne++;
                }
            }
            Console.WriteLine("字符{0}在字符串中出现的了{1}次!", chr, countOne);

            Console.ReadKey();
        }
    }
}

那么:用IndexOf()如何判断出现的次数呢?
搜索更多相关主题的帖子: 练习题 字符串 统计 字母 
2014-10-16 14:35
lxsxd
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:153
专家分:357
注 册:2014-4-15
收藏
得分:0 
请各位大侠高手帮忙,小虾在此先谢谢!

艰难地走在C#自学的路上…………
2014-10-16 14:36
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:10 
利用IndexOf的重载函数

Maybe
2014-10-16 16:21
lxsxd
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:153
专家分:357
注 册:2014-4-15
收藏
得分:0 
感谢信
--------
谢谢 邓士林 ,本题已经解决。

艰难地走在C#自学的路上…………
2014-10-16 19:56
lxsxd
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:153
专家分:357
注 册:2014-4-15
收藏
得分:0 
这两种方法都能实现:
(1)使用IndexOf()重载
namespace 书本练习题
{
    class Program
    {
        static void Main(string[] args)
        {
            int countOne = 0;
            Console.WriteLine("请输入一个字符串:");
            string strWord = Console.ReadLine();
            Console.WriteLine("请输入一个子字符:");
            char chr = Convert.ToChar(Console.ReadLine());
 
            //使用indexOf的重载函数
            int index = 0;
            index = strWord.IndexOf(chr, index);//从下标为index处开始查找,有返回下标,无返回-1
            while (index != -1)
            {
                index = strWord.IndexOf(chr, index+1);
                countOne++;
            }
            Console.WriteLine("字符{0}在字符串中出现的了{1}次!", chr, countOne);
            Console.ReadKey();
        }
    }
}

(2)使用Substring()截取字符串
namespace 书本练习题
{
    class Program
    {
        static void Main(string[] args)
        {
            int countOne = 0;
            Console.WriteLine("请输入一个字符串:");
            string strWord = Console.ReadLine();
            Console.WriteLine("请输入一个子字符:");
            char chr = Convert.ToChar(Console.ReadLine());
 
            //使用substring()截取字符串
            int index = 0;
            do
            {
               
                index = strWord.IndexOf(chr);  //取字符Chr出现的下标
                int End = strWord.Length - 1;  //取字符串strWord最后字符的下标
                strWord = strWord.Substring(index+1, End - index);//截取从下标+1处开始到结尾的字符串
                if (index != -1)
                {
                    countOne++;//进入累加器累加一次,当最后没有出现chr时,不进入累加器
                }               
            } while (index != -1);
            Console.WriteLine("字符{0}在字符串中出现的了{1}次!", chr, countOne);
            Console.ReadKey();
        }
    }
}

艰难地走在C#自学的路上…………
2014-10-16 21:44
快速回复:这道题目是不是出错了? IndexOf()是查找首次出现的位置,怎么能统计出 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017988 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved