黑马程序员技术交流社区

标题: 输入一个字符串,如何找出字符串中所有e的位置? [打印本页]

作者: 王洪磊    时间: 2013-6-4 19:22
标题: 输入一个字符串,如何找出字符串中所有e的位置?
本帖最后由 王洪磊 于 2013-6-21 10:18 编辑

如题,今天看基础视频这样一个题,但是没有答案,于是自己写了一下,感觉不太完善,请高手帮忙指导。
  1.   Console.WriteLine("请输入一句话");
  2.             string str = Console.ReadLine();
  3.             int i = str.IndexOf('e');
  4.             while (i > -1)
  5.             {
  6.                  i += str.IndexOf('e');
  7.                 if (i >= str.Length)
  8.                    break;
  9.                 i = str.IndexOf('e', i);
  10.                 Console.WriteLine(i);
  11.             }
  12.             Console.ReadKey();
复制代码

作者: 胡章诚    时间: 2013-6-4 19:49
首先将待测字符串 str 转成 char 数组str[str.length-1],另外再定义一个int数组int[str.length-1],
用for循环遍历字符数组,在 for 里面用 if 判断,
如果=='e',则用int[j]记下对应的i 值(可能是i+1,是实际情况而定),并且将 j++,以便下一次使用,
如果!=‘e’ ,则继续循环,直到结束
结束以后,int[]记录下的就是  ‘e’  的位置
作者: zpzhangwenhan    时间: 2013-6-4 22:26
上代码:{:soso_e100:}
  1. static void Main(string[] args)
  2.         {
  3.             //输入一个字符串,如何找出字符串中所有e的位置?
  4.             string strs = Console.ReadLine();
  5.             //转成数组
  6.             char[] chars = strs.ToArray();
  7.            
  8.             for (int i = 0; i < chars.Length; i++)
  9.             {                  
  10.                 if(chars[i].Equals('e'))
  11.                 {
  12.                     Console.WriteLine(i);
  13.                 }
  14.             }
  15.             Console.ReadKey();
  16.         }
复制代码

作者: 关关雎鸠    时间: 2013-6-5 10:10
本帖最后由 关关雎鸠 于 2013-6-5 10:13 编辑
  1. static void Main(string[] args) {
  2.             //输入一个字符串,如何找出字符串中所有e的位置?
  3.             string str = Console.ReadLine();
  4.             string index = string.Empty;    //存放e的位置
  5.             for (int i = 0; i < str.Length; i++) {
  6.                 char c = str[i];
  7.                 if (c == 'e') {                    
  8.                     index += i.ToString() + ",";    //把所有出现e的位置(索引)拼接起来
  9.                 }
  10.             }
  11.             Console.WriteLine(index);   //输出e的位置

  12.             Console.ReadKey();
  13.         }
复制代码
不知道我这个行不行,没有区分大小写,只是简单的示例下。注意索引从0开始的。

W.png (6.37 KB, 下载次数: 0)

W.png

作者: 王震    时间: 2013-6-21 00:12
Console.WriteLine("请输入一句话");
            string str = Console.ReadLine();
            int i = 0;
            do
            {
               i = str.IndexOf('e', i+1);
               Console.WriteLine(i + 1);
            } while (i!=-1);            
           Console.ReadKey();
作者: 万大述    时间: 2013-6-21 09:59
string strs = Console.ReadLine();//要求用户输入一个待测的字符串。(区分大小写)
            //string strs = Console.ReadLine().ToLower();//该句不区分大小写。
            char[] chars = strs.ToArray();//将输入字符串转成字符数组。
            int count = 0;
            int[] position = new int[strs.Length];
            for (int i = 0; i < chars.Length; i++)//用for循环找出其中‘e’的是第几个字符。
            {
                if (chars[i].Equals('e'))//让数组中所有元素和‘e’进行比较是否相等,相等则输出
                {
                    position[count] = i + 1;
                    count++;
                }
            }
            Console.Write(strs+"中的第");//不换行
            for (int i = 0; i < count; i++)
            {
                if (i != count - 1)//让最后一个不输出”、“。
                {
                    Console.Write(position[i] + "、"); //不换行。
                }
                else
                {
                    Console.Write(position[i]);//不换行。
                }
            }
            Console.WriteLine("个字符是”e“!");
            Console.ReadKey();




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2